for(i=0,j=0;i<10,j<6;i++,j++)问题

今天发现了一个有趣的现象,应该是知识的遗漏点,那就是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. 初始化变量
  2. 是可选的,也就是说可以不写,如var i=0; for(; i<5; i++)
  3. 可以写任意多个,如for(i=0, j=5; i<j; i++)

语句2

  1. 执行条件
  2. 是可选的(若不填,循环中必须要有break,不然死循环)

语句3

  1. 改变初始变量的值
  2. 也是可选的

但今天看到一道题,我觉得很有趣,题目是这样的:
下列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)符不符合条件。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值