【问题标题】:Is there any difference between i++ and ++i in javascript for loop? [duplicate]javascript for循环中的i++和++i有什么区别吗? [复制]
【发布时间】:2014-01-24 14:20:39
【问题描述】:

我知道,在 c++ 中,++i 比 i++ 更好。

++i;  // Fetch i, increment it, and return it  
i++;  // Fetch i, copy it, increment i, return copy

这里是same question about c++

那么,javascript 呢?

【问题讨论】:

  • 与 C++ 语义相同。 (而且说前增量比后增量“更好”有点奇怪。它不同,但我不明白为什么它会更好。)
  • 定义“更好”。表现?如果是这样,那就忘记它。我不相信您将能够享受 JS 中这种级别的优化带来的好处(如果有的话)。
  • Tested 我的 iPhone 上的性能和它们几乎一样。

标签: javascript


【解决方案1】:

取自古法

i++ 和 ++i 的区别在于表达式的值。

'i++的值是i在增量前的值。 ++i 的值是i 增加后的值。

例子:

var i = 42;
alert(i++); // shows 42
alert(i); // shows 43
i = 42;
alert(++i); // shows 43
alert(i); // shows 43

i----i 运算符的工作方式相同。'

所以基本上,唯一的区别是增量的结果。

【讨论】:

  • 不,他们不会做同样的事情。它们返回不同的值。
  • @DoorknobofSnow 已编辑
【解决方案2】:

除非您在赋值中或作为表达式的一部分使用增量的结果,否则前增量和后增量之间绝对没有区别。

如果您使用结果,预增量可能会稍微快一些,因为它不需要在增量时保存旧值。但是,如果您使用结果,则需要根据需要分配的值来选择要使用的表单——您通常不能根据性能做出决定。

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 2017-05-17
    • 1970-01-01
    • 2017-10-23
    • 2013-05-22
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多