我知道你可以简单地通过i++
(假设我是你的变量)将一个添加到变量中。在迭代数组或在“for”语句中使用它时,可以最好地看到这一点。在找到一些在线使用的代码之后,我注意到for语句使用了++i
(与i++
相对应)。
我想知道是否存在任何重大差异,或者两者的处理方式是否有所不同。
答案 0 :(得分:29)
是的,存在大差异。
var i = 0;
var c = i++; //c = 0, i = 1
c = ++i; //c = 2, i = 2
//to make things more confusing:
c = ++c + c++; //c = 6
//but:
c = c++ + c++; //c = 13
这是一个把它放在一起的小提琴:http://jsfiddle.net/maniator/ZcKSF/
答案 1 :(得分:4)
++i
的值为i + 1
,i++
的值仅为i
。评估后,i
为i + 1
。这是时间上的差异,这就是为什么它们通常被称为“预增量”和“后增量”。在for循环中,它很少重要。
答案 2 :(得分:3)
++i/i++
会让您感到惊讶。另一种方法是使用i += 1
简单地向我添加1,可读,易懂和明确。
答案 3 :(得分:2)
查看此链接:http://www.w3schools.com/js/js_operators.asp 它的后增量与预增量相比。它们最终都会递增值,但是一个返回值前递增(++ y),另一个返回值AFTER(y ++)。 但是,在for循环中使用它时没有任何区别 -
for( var i = 0; i < 100; i++ ) { ... }
与
相同for( var i = 0; i < 100; ++i ) { ... }
答案 4 :(得分:2)
a=1;
b=1;
c=++a;//the value of a is incremented first and then assigned to c
d=b++;//the value of b is assigned to d first then incremented
现在如果你打印a,b,c,d ..输出将是:
2 2 2 1
答案 5 :(得分:1)
++我被称为预增量,而i ++被称为后增量。不同之处在于变量递增时。预先递增变量通常会增加1然后使用该值,而后增量则使用变量然后递增。