我的代码如下:
var x = 4
var y = --x;
为什么我运行结果时是:
console.log("value of x: ",x); //outputs 3
console.log("value of y: ",y); //outputs 3
为什么不是:
console.log("value of x: ",x); //outputs 4
console.log("value of y: ",y); //outputs 3
答案 0 :(得分:1)
decrement operator既可以用作前缀,也可以用作后缀,并且具有不同的行为。在前缀位置,它意味着“先减少,然后在后缀位置返回值”,这意味着“首先返回值,然后递减”。
所以var y = --x
表示“将x改为等于-1,然后将结果值赋给y”
var y = x--
表示“将x的值赋给y,然后将x更改为等于自身-1”
如果您只是想进行计算而不是更改x等于,那么请var y = x - 1
答案 1 :(得分:0)
此处var y = --x;
--x
会将 x
设置为x-1
并返回更新后的值。
如果
x
为3,那么--x
会将x
设置为2并返回2,而x--
会返回3,然后才会将x
设置为2。