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

posted @ 2021-03-05 22:37  howareyou!  阅读(404)  评论(0)    收藏  举报