我只是好奇一件事.Javascript中的一个小例子
var a = 1;
a = a++;
console.log(a); // 1
var b = 1;
b = ++b;
console.log(b); // 2
var c = 1;
c += 1;
console.log(c); //2Run Code Online (Sandbox Code Playgroud)
我理解为什么是这样工作的情况下,b和c,但怎么样a?首先代码进行赋值a = a,实际值保持不变,但它应该(如我所见)增加并增加a每单位的值.但这没有发生.为什么?
Run Code Online (Sandbox Code Playgroud)var a = 1; a = a++;
1 分配给 aa++ 被评估为 1a++递增a到2a = {result of previous evaluation}分配1给a所以它1再次Run Code Online (Sandbox Code Playgroud)var b = 1; b = ++b;
1 分配给 b++b递增b到2++b 被评估为 2b = {result of previous evaluation}分配2给b所以它2仍然是这就是后期增量的工作原理
如果使用后缀,操作数后面带有运算符(例如,x++),则它返回递增之前的值。
一个=一个++;
当a++执行a is 2并且表达式返回1并且a被赋值为1时。
这就是您看到增量之前的值的原因。
请注意,如果您不分配回来,您将看到 的递增值a。简而言之,您可以通过将其分配回来来覆盖此处增加的值。
var a = 1;
a++;
console.log(a); // 1Run Code Online (Sandbox Code Playgroud)