【问题标题】:Why the value plus plus at last is 100? [duplicate]为什么 value plus plus 最后是 100? [复制]
【发布时间】:2022-01-15 20:08:28
【问题描述】:

当我在 javascript 中使用 ++ 运算符时,为什么我最后得到的值是 100 而不是 101? 我想知道javascript中++运算符的详细信息?

let value = 100;
value = value++;
console.log(value); // 100 why the value is 100 at last

【问题讨论】:

标签: javascript


【解决方案1】:

因为当您有赋值运算符时,首先计算右侧操作数,然后将该值分配给左侧的接收器。¹

这就是value = value++中发生的事情:

  1. 读取value (100) 的值并将其放在一边(因为我们稍后将需要它)。
  2. value 的值加一(变为101)。
  3. 将#1 (100) 中的值作为右侧操作数的结果值。
  4. 将该值存储在value

¹在规范方面它稍微比这更复杂,但这里的细节并不重要。

【讨论】:

  • 那里 必须 成为这个的欺骗目标,因此是 CW。 (我发现如果我先打猎,糟糕的答案就会堆积起来......)
  • 我实际上找不到处理分配部分的人(并且不想花更多时间寻找)。这两个标记的问题不处理那部分,但它们确实解释了后缀增量,所以......嗯,足够接近了。
【解决方案2】:

那是因为<value>++ 返回前一个值而不是新值 如果您希望它返回新值,请使用 ++<value>

【讨论】:

    猜你喜欢
    • 2013-05-07
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2010-11-24
    • 1970-01-01
    • 2023-03-16
    • 2021-03-15
    相关资源
    最近更新 更多