for循环面试题
今天发现了一个有趣的现象,应该是知识的遗漏点,那就是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
初始化变量
1. 是可选的,也就是说可以不写,如var i=0; for(; i<5; i++)
2. 可以写任意多个,如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)符不符合条件。
————————————————
版权声明:本文为CSDN博主「WillisQ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/WillisQ/article/details/71123251

浙公网安备 33010602011771号