【问题标题】:How does this for loop work? for ( ; i < length; i++ )这个 for 循环是如何工作的?对于 ( ; i < 长度; i++ )
【发布时间】:2012-04-24 04:06:19
【问题描述】:

这个 for 循环是如何工作的?这对我来说没有意义。

for ( ; i < length; i++ ) {

【问题讨论】:

    标签: javascript loops


    【解决方案1】:

    只要i 小于length,循环就会重复。它只是假设 i 已经在别处声明。

    实际上,for 循环结构中的所有部分都是可选的。例如,这是创建无限循环的一种完全有效的方法:

    ​for(;;) window.alert('Are you sick of alerts yet?');​​​​​​​​​
    

    【讨论】:

    • +1 for for (;;),这让我想起了在我意识到 while (true) 更清晰之前的记忆(出于某种原因,我被介绍给 for (;;) 作为创建无限循环的规范方式)...
    • 是的,JavaScript 是一种独特的语言,因为这些类型的 hacky-ish 快捷方式有点鼓励,只是为了通过网络节省字节。否则,while(true) 肯定更容易阅读。用!!~~ 投射也很有趣..
    • 哈,但我当时实际上是在学习 C++(第一种编程语言),而不是 JavaScript! ;-)
    【解决方案2】:

    这是一个常规的for 循环,在初始化步骤中什么都不做。

    这相当于写:

    ;
    while (i < length) {
        // ...
        i++;
    }
    

    除非... 主体中有continue,在这种情况下for 循环会在重新评估条件之前执行i++,而while 循环不会。

    【讨论】:

    • 那么为什么要写这个而不是简单的while 循环呢?
    • @nl-x:好点。它更紧凑,但可读性稍差;但是,如果 intent 是有一个正常的for 循环,并且恰好不需要初始化步骤,那么我认为使用该表单没有任何问题。如果循环体内有一个continue,那么真正的区别就会出现——for 表单会递增,但while 表单不会。我已经编辑了我的答案以反映这一点,谢谢。
    • 抱歉,我没看清楚。我认为i++ 部分也被省略了,例如for (;i&lt;length;) 我的问题是为什么这比写一个简单的while (i&lt;length) 更受欢迎?例如,我在 jquery 库中看到过这个装置。
    • @nl-x:嗯,打败我了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2013-04-26
    • 2016-10-16
    相关资源
    最近更新 更多