gpt4 book ai didi

javascript - 为什么 i += i + i++ 等于 0?

转载 作者:行者123 更新时间:2023-12-04 06:13:57 27 4
gpt4 key购买 nike

考虑这段代码:

var i = 0;
>> undefined

i += i + i++;
>> 0

i
>> 0 // why not 1?

由于增量 (++) 运算符,我希望 i1。我认为应该发生的事情是这样的:

i = 0 + 0 + (i = i + 1)
i = 0 + 1
i = 1

为什么它返回零呢?谁能解释一下幕后发生的事情?

最佳答案

重要的是要认识到 i++ 递增 i,但返回 i原始值。此运算符的后缀版本(也称为后增量)记录在案 here :

If used postfix, with operator after operand (for example, x++), then it returns the value before incrementing.

所以这计算为:

i = 0 + (j = i, i += 1, j);

注意 comma operator 的使用以上。

您所描述的更像是运算符的前缀版本(也称为预递增)++i,其计算结果为:

i = 0 + (i += 1);

确实返回 1。

关于javascript - 为什么 i += i + i++ 等于 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25206804/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com