标签:编译器 代码 优化 证明 return ons 实例 turn ++i
首先我们应该都知道++i与i++的区别是: ++i 是先执行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i=i+1;
然后我们也知道for循环的执行顺序如下:
for(A;B;C)
{
D;
}
进入循环执行A;//只是进入的时候执行.
执行B;//条件为真才执行D,不然就跳出for了.
执行D;
执行C;
再回到第2步开始执行
那么我们接着看下面实例:
1.for (var i=0; i<10; i++):
for(var i = 0; i<10; i++) {
console.log(i);
}
相当于:
for(var i=0; i<10;)
{
console.log(i);
i++;
}
2.for (var i=0; i<10; ++i):
for(var i = 0; i<10; ++i) {
console.log(i);
}
相当于:
for(var i=0; i<10;)
{
console.log(i);
++i;
}
在上述的循环体中,i++ 和 ++i 的作用是一样的。
打印出来的信息都是:
0
1
2
3
4
5
6
7
8
9
打印信息也证明了 i++ 和 ++i 的作用是一样的。
效率问题
++i相当于下列代码
i += 1;
return i;
i++相当于下列代码
j = i;
i += 1;
return j;
写for循环的时候都是写 ++i 而不是 i++。这样效率高。当然如果编译器会将这些差别都优化掉,那么效率就都差不多了。
标签:编译器 代码 优化 证明 return ons 实例 turn ++i
原文地址:https://www.cnblogs.com/itgezhu/p/11227340.html