循环的这两个表达式中的语法是什么意思
What does the syntax in this two expression for loop mean?
var i = 0, item; item = a[i++];
这两个表达式是什么意思?
for (var i = 0, item; item = a[i++];) {
// Do something with item
}
显然,这是的替代方案
for (var i = 0; i < a.length; i++) {
// Do something with a[i]
}
for (var i = 0, item; item = a[i++];) {
// Do something with item
}
是告诉循环继续进行,只要item
被分配了一个"truthy"值。在每次迭代之后,item
被分配给数组中的下一个项。其思想是,一旦i
到达超出数组边界的点,就会分配undefined
,循环就会终止。
但写这段代码的人应该被解雇,因为如果数组包含任何"falsy"值,循环也会终止:0,空字符串,false好吧,这段代码是Mozilla的人写的,他们比我聪明得多。请注意,如果数组包含任何"falsy"值,则循环会终止:0
,empty string
,false
亲眼目睹:
var a = [1, 2, 3, 0, 5, 6];
for (var i = 0, item; item = a[i++]; ) {
alert(item);
}
请注意,循环在3之后终止,因为0是falsy。
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jquery 1.8.0语法错误,无法识别的表达式:>
- 什么是英国电话号码验证表达式和语法
- Jquery 替换所有文本语法正则表达式中的变量
- 如何修复 jQuery 1.8“语法错误,无法识别的表达式”错误
- 错误:错误:语法错误,无法识别的表达式:
- 属性选择器不起作用(语法错误、无法识别的表达式)
- 如何在jQuery中修复此错误未捕获异常:语法错误,无法识别的表达式:语法错误,无法识别的表达式:标签
- 正则表达式语法错误 - 无需重复
- JS正则表达式语法
- Javascript正则表达式语法错误
- 正则表达式语法困难
- Angularjs的ng类表达式语法
- Javascript多重比较表达式语法
- 来自PEG(解析表达式语法)的智能感知
- JavaScript正则表达式语法
- 未捕获的错误表达式:语法错误,无法识别的表达式
- jQuery函数中的正则表达式语法
- HTML5输入验证的Javascript正则表达式语法