javascript:运算符和之间返回值的差异-=
给定以下代码:javascript:运算符和之间返回值的差异-=,javascript,Javascript,给定以下代码: var x = 0; function decrement(num) { return num--; } var y = decrement(x); console.log(y); // 0 与以下各项相比: var x = 0; function decrement(num) { return num -= 1; // this is the only difference between the functions } var y = decre
var x = 0;
function decrement(num) {
return num--;
}
var y = decrement(x);
console.log(y); // 0
与以下各项相比:
var x = 0;
function decrement(num) {
return num -= 1; // this is the only difference between the functions
}
var y = decrement(x);
console.log(y); // 0
为什么
y--
从函数返回0
,而y-=1
返回-1
?更新:这是一个重复的问题,回答如下:
因此,我找不到这个问题的答案,在研究和撰写问题的同时,我设法回答了我的问题
代码示例使用后缀递增运算符。后缀运算符将首先返回当前值,然后递增该值
var x = 1;
x++; // returns 1, x === 2
这与前缀递增运算符不同,前缀递增运算符首先递增值,然后返回递增值
var y = 1;
--y // returns 0, y === 0
关于
+=
和-=
赋值运算符:这些运算符也会增加值,然后返回增加的值。记住前缀和后缀。当我执行return num--
I仅返回num
的值时,在我返回该值之后会出现解析
var y = 1;
--y // returns 0, y === 0
简言之,运算符先行性我很好奇为什么您没有同时运行
--y
;但你可能会在这个问题中找到答案:@DavidThomas,谢谢。没有意识到你不能轻易地搜索单个字符就这样。将解释为什么我一开始找不到这个问题的答案。与其使用Stackoverflow作为引用,不如尝试使用实际引用作为引用:签出()