for(var i=0;i<10;i++){ console.log(i);//0,1,2,3...,9}
for((1);(2);(3)){(4)}-----红色标记表示这里的表达式,方便叙述。
先运行(1),再判断(2)是否为true,为true再执行(4);
第一轮结束之后,执行(3),再判断(2)是否为true,为true再执行(4);
执行(3),再判断(2)是否为true,为true再执行(4);
.....;
执行(3),再判断(2)是否为true,为false,结束循环;
这种执行顺序换更加的明了的写法就是下面的这种形式。
上面的传统的for循环与下面的for循环结果是一致的,只是形式有所改变。证明在for循环中真正重要的是运行的顺序。
var i=0;
for(;i<10;){
console.log(i);//0,1,2,3...,9
i++;
}
undefined null "" false NaN 0-----转换为boolean类型的时候都是false
var i=10;
for(;i--;){//
console.log(i);//9,8,7...0
}
i--是从10开始,此时i是9,当i--是1时,i是0,当i--为0的时候是false不再执行。
例子----逗号运算符的作用是执行完前一句,再执行后一句并且返回后一句
for(var i=0,j=1;i<5,j<10;i++,j++){
console.log(i,j);//0 1;1 2;...;8,9 最后是运行到了i是8,j是9的结果。
}
//逗号运算符会把后面的表达式运算结果返回。
//for循环中间的表达式就是判断能不能执行,当中间的表达式值为false的时候才会停止执行循环体。
//所以这里i虽然早就返回了false,但是判断取到的是j判断的结果