JavaScript中的后缀运算符

JavaScript中的后缀运算符,javascript,postfix-operator,Javascript,Postfix Operator,我想这是一个基本的JS问题,但我就是找不到一个我满意的答案。我正在学习JavaScript中的运算符,我无法理解以下后缀示例及其工作原理: var x = 4; var y = x++; 例如,当我提醒x时,它给我5。但当我提醒y时,它会给我4。我不明白背后的逻辑。 我理解,因为它是一个后缀,x被分配给y。y只读x,没有后缀。但是,如果我将后缀应用于不同的var,那么为什么原始x会读取后缀呢 如果我只做了var y=x+1,那么原来的x将保持不变。但当我使用后缀时,情况并非如此。为什么我要用这

我想这是一个基本的JS问题,但我就是找不到一个我满意的答案。我正在学习JavaScript中的运算符,我无法理解以下后缀示例及其工作原理:

var x = 4;
var y = x++;
例如,当我提醒x时,它给我5。但当我提醒y时,它会给我4。我不明白背后的逻辑。 我理解,因为它是一个后缀,x被分配给y。y只读x,没有后缀。但是,如果我将后缀应用于不同的var,那么为什么原始x会读取后缀呢

如果我只做了
var y=x+1
,那么原来的x将保持不变。但当我使用后缀时,情况并非如此。为什么我要用这个方法改变x?那么我就不能去
var x=4;x++?而不是麻烦通过另一个变量来改变它

我道歉,如果这是太基本,并提前感谢

为什么我要用这个方法改变x

对于一些有趣的缩写形式,如:

const array = [1, 2, 3];
let i = 0;
while(i < array.length) console.log(array[ i++ ]);
const数组=[1,2,3];
设i=0;
而(i
难道我不能就这样走吗?var x=4;x++

是的,或者只是前缀,比如
++x
或者只是
x+=1
,这在大多数情况下更合适

为什么我要用这个方法改变x

对于一些有趣的缩写形式,如:

const array = [1, 2, 3];
let i = 0;
while(i < array.length) console.log(array[ i++ ]);
const数组=[1,2,3];
设i=0;
而(i
难道我不能就这样走吗?var x=4;x++


是的,或者只是前缀,比如
++x
或者只是
x+=1
,这在大多数情况下更合适。

更容易将增量运算符视为返回某些内容的小函数。因此,
x++
是一个函数,它递增
x
并返回
x
的原始值,而
++x
做同样的事情,但返回新值

这一点不时会派上用场,尤其是在需要精确控制停止点的循环中。例如,比较:

设i=0,j=0;
而(++i<5){
console.log(i)//在4处停止
}
而(j++<5){
console.log(j)//在5处停止

}
更容易将递增运算符视为返回某些内容的小函数。因此,
x++
是一个函数,它递增
x
并返回
x
的原始值,而
++x
做同样的事情,但返回新值

这一点不时会派上用场,尤其是在需要精确控制停止点的循环中。例如,比较:

设i=0,j=0;
而(++i<5){
console.log(i)//在4处停止
}
而(j++<5){
console.log(j)//在5处停止
}