gpt4 book ai didi

javascript - javascript中++和+=1的区别

转载 作者:可可西里 更新时间:2023-11-01 01:16:16 26 4
gpt4 key购买 nike

有人可以解释为什么以下函数会产生不同的结果。第一个似乎不起作用,但第二个可以。我很困惑,因为我认为 +=1 和++ 做了同样的事情。

(我并不打算实际使用这段代码,它只是为了展示差异)。

/*function 1*/
function incrementIfZero1(base,element) {

if (element == 0) {
return base++;
}
else
{
return base;
}
};


/*function 2*/
function incrementIfZero2(base,element) {

if (element == 0) {
return base+=1;
}
else
{
return base;
}
};

incrementIfZero1(1,0) /* -> 1*/
incrementIfZero2(1,0) /* -> 2*/

非常感谢任何帮助。

谢谢,

罗宾

[编辑:]

谢谢你的回复,现在明白了。我还尝试了以下语句,结果与函数 1 相同:

return (base++)

我现在很惊讶这并没有给出与函数 2 相同的结果——我本以为括号会“强制”它在返回之前被评估。知道为什么不是这种情况吗?

最佳答案

当您return base++ 时,它会在 base 递增之前返回它的值。你想做 ++base 来确保先发生增量然后返回

否则++等同于+=1

[edit] 作为对您编辑的回应,我尝试将随机语句包装在括号中,大多数数学运算符都按预期响应,这种递增似乎是豁免的,可能是因为预递增与后递增的语法是高度故意的并且该语句本身返回一个特定的值,无论您是否将其括在括号中

关于javascript - javascript中++和+=1的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241877/

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