Javascript 循环的这两个表达式中的语法是什么意思?

Javascript 循环的这两个表达式中的语法是什么意思?,javascript,Javascript,两个表达式var i=0,item;项目=a[i++];什么意思 显然,这是一种替代方案 for (var i = 0; i < a.length; i++) { // Do something with a[i] } 告诉循环继续运行,只要项被分配了真实值。在每次迭代之后,项被分配给数组中的下一个项。其思想是,一旦我到达一个超出数组边界的点,将分配未定义的,循环将终止 但是不管是谁写的这段代码都应该被解雇,因为如果数组包含任何错误的值,循环也会终止:0,空字符串,f

两个表达式var i=0,item;项目=a[i++];什么意思

显然,这是一种替代方案

for (var i = 0; i < a.length; i++) {  
    // Do something with a[i]  
}  
告诉循环继续运行,只要项被分配了真实值。在每次迭代之后,项被分配给数组中的下一个项。其思想是,一旦我到达一个超出数组边界的点,将分配未定义的,循环将终止

但是不管是谁写的这段代码都应该被解雇,因为如果数组包含任何错误的值,循环也会终止:0,空字符串,false Ok,这段代码是Mozilla的人写的,他们比我聪明得多。请注意,如果数组包含任何falsy值,则循环将终止:0、空字符串、false

要亲自查看:

var a = [1, 2, 3, 0, 5, 6];

for (var i = 0, item; item = a[i++]; ) {
    alert(item);
} 
请注意,循环在3之后终止,因为0是falsy

告诉循环继续运行,只要项被分配了真实值。在每次迭代之后,项被分配给数组中的下一个项。其思想是,一旦我到达一个超出数组边界的点,将分配未定义的,循环将终止

但是不管是谁写的这段代码都应该被解雇,因为如果数组包含任何错误的值,循环也会终止:0,空字符串,false Ok,这段代码是Mozilla的人写的,他们比我聪明得多。请注意,如果数组包含任何falsy值,则循环将终止:0、空字符串、false

要亲自查看:

var a = [1, 2, 3, 0, 5, 6];

for (var i = 0, item; item = a[i++]; ) {
    alert(item);
} 

请注意,循环在3之后终止,因为0是错误的。

该死的,你为什么这么快我不知道,数组应该包含相同类型的值。在这种情况下,最有可能的对象-将falsy值与数组中的对象混合在一起是更大的失败:PThanks Adam,我在Mozilla的教程中得到了这个代码:@ Easija-我想如果你能保证数组只包含对象,而不是字符串或数字,那么当然,这是安全的,还是你只是开玩笑?但是为什么VAR i=0,项目?赋值为i=0的函数,然后计算出该项的值。作为循环的初始值设定项,结果如何?Sheesh-太聪明了。更新:没关系,点击链接。它声明变量项,但不初始化它。该死的,你为什么这么快我不知道,数组应该包含相同类型的值。在这种情况下,最有可能的对象-将falsy值与数组中的对象混合在一起是更大的失败:PThanks Adam,我在Mozilla的教程中得到了这个代码:@ Easija-我想如果你能保证数组只包含对象,而不是字符串或数字,那么当然,这是安全的,还是你只是开玩笑?但是为什么VAR i=0,项目?赋值为i=0的函数,然后计算出该项的值。作为循环的初始值设定项,结果如何?Sheesh-太聪明了。更新:没关系,点击链接。它声明变量项,但不初始化它。
var a = [1, 2, 3, 0, 5, 6];

for (var i = 0, item; item = a[i++]; ) {
    alert(item);
}