先来看2段js代码
var a=0; var b=0; while(a<10) { document.write(a++); } document .write("<br>"); while(b<10) { document.write(++b); }
结果是0~9和~1~10
这证明了2个问题:
第一:循环的次数是相等的
第二:如果是a++的话,每一次进行一个自加的话,都是不会返回当次自加的结果,而是上次循环得到的结果(老的)
如果是++a的话,每次循环,返回最新的结果,也就是+1以后的结果。
我们再来看看下面的代码:
for(var i=0;i<10;i++){document.write(i)} document.write("<br>"); for(var i=0;i<10;++i){document.write(i)}
里面的2段代码的结果都是一样的都是0~9
为什么这里一样了呢?因为刚才说过,i++或者++i是作为返回值然后显示出来,
而这里的i++和++i是作为执行次数来操作的,并没有返回值,而他们的执行次数是一样的
再来做一个变体
for(var i=0;i<10;i++){document.write(++i)} //1,3,5,7,9
for(var i=0;i<10;i++){document.write(i++)} //0,2,4,6,8
显示结果分别又是是什么呢?
首先我们可以确定的是:for循环里面的i++是不会有返回值的,但是会+1,
而后面的++i是会有返回值的,所以结果就是上面注释的结果了。