js 普通for循环的各种写法

lio-mengxiang分享的面试题,手写一个基于发布订阅模式的事件绑定机制

循环很奇特

上面的循环没有递增条件,引发思考,搜索, 摘抄

1. 变量递增表达式不写

for (var i = 10; i--; ) {
  console.info(i);
}

可以正常执行十次,循环能否继续往下执行的条件是条件表达式返回的是否是true,在i为0之前,i--返回的是1~10的数字,隐式转换为true,所以可以继续循环

var ary = ["jack","tom","lily","andy"];
for(var i=0,a;a=ary[i++];){
    console.log(a);
}

也可以正常执行
js(javascript)中的奇特for循环写法!

2. 循环初始值不写

var i=0;
for(;i<10;i++) {
    alert(i);
}

依然可以执行十次,初始值表达式只会执行一次,所以可以放到外面初始化,但是分号不能少

3. 变量递增表达式和循环初始值都不写

var i=0;
for(;i<10;) {
    alert(i);
    i++
}

依然可以执行十次,放到循环体内写i递增也是可以正常循环的

javascript:for循环从入门到偏门,效率优化,奇特用法

但是循环条件不能不写不然就会死循环

你可能感兴趣的:(js 普通for循环的各种写法)