for循环的更多写法

六月ゝ 毕业季﹏ 提交于 2019-12-05 14:23:07

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

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

比较疑惑,因为从平时接触的来看基本上都是

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

现在的疑惑如下

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

实际上上面的语句等同于,这是为什么

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’

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!