请教老师一下for循环

来源:4-9 解决getElementsByClassName()兼容性

hy_wang

2018-09-13 14:42:11

请问一下老师这里的for循环

for(var i=0;node = nodes[i++];) 没有看懂 这里的赋值语句node = nodes[i++]怎么理解?为什么赋值语句会变成false和true? 以及循环条件i++是怎么看出来的

写回答

1回答

好帮手慕星星

2018-09-13

for循环里面有三个语句,通常使用语句 1 初始化循环中所用的变量 (var i=0);使用语句 2 评估初始变量的条件;通常使用语句 3 会改变初始变量的值。但是这三个语句都不是必须的,如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。这个for循环中:

for(var i=0;node = nodes[i++];)

nodes是传入的带有指定class名字标签的一个集合,将这个集合中的每一个值赋值给node,直到i为nodes集合中的最后一个标签元素的索引,超出最后一个内容之后就没有值了,就是undefined,赋值给node转化为布尔值就是返回false,所以会停止循环。

自己找一个数组的小例子测试下,祝学习愉快~~

0

0 学习 · 4826 问题

查看课程