JavaScript增量

JavaScript增量,javascript,increment,Javascript,Increment,可能重复: 我知道您可以通过执行I++(假设I是您的变量)将一个变量添加到变量中。当遍历数组或在“for”语句中使用它时,可以最好地看到这一点。在找到一些在线使用的代码后,我注意到for语句使用了++I(相当于I++) 我想知道这两者是否有显著的区别,或者两者的处理方式是否有所不同 的++i的值是i+1,而i++的值只是i。在对其中一个进行求值后,i为i+1。这是时间上的差异,这就是为什么它们经常被称为“增量前”和“增量后”。然而,在for循环中,它几乎不重要。++i称为pre-increme

可能重复:

我知道您可以通过执行
I++
(假设I是您的变量)将一个变量添加到变量中。当遍历数组或在“for”语句中使用它时,可以最好地看到这一点。在找到一些在线使用的代码后,我注意到for语句使用了
++I
(相当于
I++


我想知道这两者是否有显著的区别,或者两者的处理方式是否有所不同

++i
的值是
i+1
,而
i++
的值只是
i
。在对其中一个进行求值后,
i
i+1
。这是时间上的差异,这就是为什么它们经常被称为“增量前”和“增量后”。然而,在for循环中,它几乎不重要。

++i称为pre-increment,i++称为post-increment。不同之处在于变量递增时。变量递增前通常加1,然后使用该值,而递增后使用变量,然后递增。

是的,有很大的差别

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

这里有一把小提琴把它放在一起:

看看这个链接: 这是增量后和增量前。它们最终都会递增值,但一个在递增(++y)之前返回值,另一个在递增(++y)之后返回值。 然而,在for循环中使用它并没有任何区别--

for(var i=0;i<100;i++){…}

for( var i = 0; i < 100; ++i ) { ... }
(var i=0;i<100;++i){…} 现在,如果打印a、b、c、d,输出将为:


2 1

像道格拉斯·克罗克福德(Douglas Crockford)这样的人建议不要使用这种递增方式,还有其他原因,因为雷夫·凯特勒(Rafe Ketterr)所描述的原因。无论你有多丰富的经验,有时候
++i/i++
都会让你大吃一惊。另一种方法是使用
i+=1
,简单地将1添加到i中,可读、可理解且无歧义。

+1因为您显示了行为,而不仅仅是将其描述为“增量前/增量后”。这将是答案。。。8分钟后:3Nice post:)谢谢你的评论!请回答:
for( var i = 0; i < 100; ++i ) { ... }
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