JavaScript中的后缀和前缀增量
我只是好奇一件事。Javascript中的一个小例子JavaScript中的后缀和前缀增量,javascript,Javascript,我只是好奇一件事。Javascript中的一个小例子 var a=1; a=a++; console.log(a);//1. var b=1; b=++b; 控制台日志(b);//2. var c=1; c+=1; 控制台日志(c)//2在a++的情况下,返回值实际上是原始值。您已将原始值再次指定给a。这就是工作原理 如果使用后缀,在操作数后加运算符(例如,x++),则返回递增前的值 a=a++ 当一个++执行一个is 2时,表达式返回1,并将a赋值给1 这就是您在增量之前看到值的原因 请注意
var a=1;
a=a++;
console.log(a);//1.
var b=1;
b=++b;
控制台日志(b);//2.
var c=1;
c+=1;
控制台日志(c)//2
在a++
的情况下,返回值实际上是原始值。您已将原始值再次指定给a
。这就是工作原理
如果使用后缀,在操作数后加运算符(例如,x++),则返回递增前的值
a=a++
当一个++执行一个is 2时,表达式返回1,并将a赋值给1
这就是您在增量之前看到值的原因
请注意,如果不向后赋值,则会看到a
的增量值。简而言之,您可以通过将递增的值重新赋值来克服它
var a=1;
a++;
console.log(a);//1
后缀运算符返回a的原始值。
因此,a由后缀++运算符增加,但随后通过指定运算符的返回值(即递增之前的值)覆盖a。
a=a++
返回递增之前的a值
您可以只使用
a++
据传,要执行++a,内存中的值会增加,然后返回。而对于a++,首先将值存储在创建的临时变量中,然后增加主变量的值并返回临时变量的值-因此创建临时变量的“费用”增加。将1
的a
的返回值临时存储以供分配,然后发生增量,a
现在的值为2
,然后发生前一个存储值的分配
a = a++;
是一样的吗
a = (temp = a, a++, temp);
1
被分配给a
a++
被评估为1
a++
将a
增加到2
a={上一次评估的结果}
将1
分配给a
,因此它再次是1
1
被分配给b
++b
将b
增加到2
++b
评估为2
b={先前评估的结果}
将2
分配给b
,因此它仍然是2
a++
返回自增前的值;
而++a
返回自增大后的值
这就是为什么当你调用a=a++时,a等于1
var a = 1;
// Here a++ means a = a; then a = a + 1
a = a++; // so you are assign first step value inside a so thats way a = 1
console.log(a); // 1
表示在a++等于a=a时存储值。您只需指定a的值并替换该值。我认为
a++
意味着增量a,但不指定。而++b
是增量和赋值。因此,在这一点上:a=a++
a是递增的,但分配回其原始值。可能的重复项通常不会执行a=a++
或a=++a
。如果要将a++
或++a
的返回值赋值,则不希望将它们赋值给要递增的值。@Eddie否,这与递增后与递增前无关。这是关于a=a++代码>的意思和作用。不要仅仅基于标题。帖子上的答案也回答了这篇帖子@徐狐
var b = 1;
b = ++b;
var a = 1;
// Here a++ means a = a; then a = a + 1
a = a++; // so you are assign first step value inside a so thats way a = 1
console.log(a); // 1