今天发现了一个有趣的现象,应该是知识的遗漏点,那就是JavaScript中的for循环。
一般for循环的语法为:
for(语句1;语句2;语句3){被执行的代码块;}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
实例:
var x=0;for (var i=0; i<5; i++){x=x + i ;}
从上面的例子中,您可以看到:
语句1 在循环开始之前设置变量 (var i=0)。
语句2 定义循环运行的条件(i 必须小于 5)。
语句3 在每次代码块已被执行后增加一个值 (i++)。
重点解释一下每个语句的使用规则:
语句1
初始化变量是可选的,也就是说可以不写,如var i=0; for(; i<5; i++)
可以写任意多个,如for(i=0, j=5; i<j; i++)
语句2
执行条件是可选的(若不填,循环中必须要有break,不然死循环)
语句3
改变初始变量的值也是可选的
但今天看到一道题,我觉得很有趣,题目是这样的:
下列JavaScript代码执行后,alert()的结果是什么?
for(i=0,j=0; i<10,j<6; i++,j++){k = i + j;}alert(k);
经测试发现:
for(i=0,j=0; i<10,j<6; i++,j++){k = i + j;}alert(k); //弹出10
for(i=0,j=0; i<6,j<10; i++,j++){k = i + j;}alert(k); //弹出18
原因:语句2 循环继续的判断依据以分号前的最后一项为准,即判断j<6(j<10)符不符合条件。
如果觉得《for(i=0 j=0;i10 j6;i++ j++)问题》对你有帮助,请点赞、收藏,并留下你的观点哦!