說明
本文基于 ES5 記錄
學(xué)而不思則罔,思而不學(xué)則殆。既學(xué)也思,不總結(jié)也白費。
學(xué)而時習(xí)之,溫故而知新。
學(xué)習(xí)使我快樂。
文中如有錯誤,還望不吝賜教,感激不盡!
JS 關(guān)于 a++ 和 ++a 的理解
-
a++
var a = 1;
var b = a++;
/*
先拆分代碼
變量 a 、變量b 、表達(dá)式 a++
表達(dá)式 a++ 可以理解成 a = a+1
標(biāo)量在前,先賦值再
先給變量b 賦值為a當(dāng)前的值
b = a;
變量a 在進(jìn)行自增計算
a = a+1;
*/
console.log(b,a) // 1,2
-
++a
var a = 1;
var b = ++a;
/*
先拆分代碼
變量 a 、變量b 、表達(dá)式 ++a
表達(dá)式 ++a 可以理解成 a = a+1
加號在前,先計算再賦值。
先給變量a 進(jìn)行自增計算
a = a+1;
再給變量b 賦值為a計算后的值
b = a;
*/
console.log(b,a) // 2,2
總結(jié)
無論表達(dá)式 a++ 和 ++a 自身的結(jié)果如何,a 的值都會 +1
不同的是:
? 表達(dá)式 a++ 返回的值是 a
? 表達(dá)式 ++a 返回的值是 a+1
上面代碼的理解不一定正確,真正影響 b 的值還是表達(dá)式返回的結(jié)果,這樣理解只是加深記憶。