JavaScript增量

时间:2011-05-16 16:54:48

标签: javascript increment

  

可能重复:
  ++someVariable Vs. someVariable++ in Javascript

我知道你可以简单地通过i++(假设我是你的变量)将一个添加到变量中。在迭代数组或在“for”语句中使用它时,可以最好地看到这一点。在找到一些在线使用的代码之后,我注意到for语句使用了++i(与i++相对应)。

我想知道是否存在任何重大差异,或者两者的处理方式是否有所不同。

6 个答案:

答案 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 + 1i++的值仅为i。评估后,ii + 1。这是时间上的差异,这就是为什么它们通常被称为“预增量”和“后增量”。在for循环中,它很少重要。

答案 2 :(得分:3)

道格拉斯·克罗克福德(Douglas Crockford)这样的人建议不要使用这种递增方式,其中包括Rafe Kettler描述的原因。无论您多么有经验,有时候++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然后使用该值,而后增量则使用变量然后递增。