for循环的更多写法

在看设计模式这本书,遇到一个使人疑惑的for循环语句javascript

for (var i = 0, type;type = ['String', 'Array', 'Number'][i++]) {
代码块
}

比较疑惑,由于从平时接触的来看基本上都是java

for(语句1,语句2,语句3){
}
语句1:起始
语句2:循环终止条件
语句3:在循环后被执行的语句

如今的疑惑以下设计模式

for(var i =10,i--;){
}

实际上上面的语句等同于,这是为何spa

for(var i =0, i<10 i++;){
}

原来这里等同于把循环终止条件和循环被执行后执行的语句相结合了即把判断和赋值放到一块儿了,一边循环一边赋值,
i--是什么判断条件,当i--为fasle即,循环终止,在js中0, null, undefined, false, ‘’,
根据Boolean的隐形转化,其结果为false,即i=0时条件终止

再回到咱们以前的问题设计

for (var i = 0, type;type = ['String', 'Array', 'Number'][i++]) {
代码块
}

 

var i =0,type;//语句1
type = ['String', 'Array', 'Number'][i++] //语句2

即这里的判断+赋值调件为type = ['String', 'Array', 'Number'][i++],终止条件为type=‘undefined’code

相关文章
相关标签/搜索