Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:运算符和之间返回值的差异-=_Javascript - Fatal编程技术网

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作为引用,不如尝试使用实际引用作为引用:签出()