【问题标题】:JavaScript increments [duplicate]JavaScript 增量 [重复]
【发布时间】:2011-08-26 14:46:23
【问题描述】:

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

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

我想知道是否有任何显着差异,或者两者的处理方式是否有任何不同。

【问题讨论】:

标签: javascript increment


【解决方案1】:

++i 的值为i + 1i++ 的值为i。在任一已评估之后,ii + 1。这是时间上的差异,这就是为什么它们通常被称为“前增量”和“后增量”。不过,在 for 循环中,这并不重要。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      是的,有一个很大的区别。

      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 因为您展示了行为,而不是仅仅将其描述为“预增量/后增量”。
      • 这将是答案......在 8 分钟内:3
      【解决方案4】:

      看看这个链接:http://www.w3schools.com/js/js_operators.asp 这是后增量与前增量。它们最终都增加了值,但是一个在增加之前返回值(++y),另一个在之后返回值(y++)。 但是,在 for 循环中使用它并没有任何区别 --

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

      一样
      for( var i = 0; i < 100; ++i ) { ... }
      
      【解决方案5】:
      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

      【讨论】:

        【解决方案6】:

        像 Douglas Crockford 这样的人建议不要使用这种递增方式,其中包括 Rafe Kettler 所描述的其他原因。无论您多么有经验,有时++i/i++ 会让您大吃一惊。另一种方法是使用i += 1 简单地将i 加1,可读、可理解且明确。

        【讨论】:

        • 好帖子 :) 感谢您的评论!
        猜你喜欢
        • 2016-07-02
        • 1970-01-01
        • 2021-11-04
        • 2022-01-17
        • 2012-12-28
        • 2014-12-09
        • 1970-01-01
        • 2019-07-16
        • 1970-01-01
        相关资源
        最近更新 更多