++a 和 a++de 區(qū)別?
?實(shí)在是不理解 執(zhí)行表達(dá)式之前+1 or -1? 什么是表達(dá)式。 還有我想的答案 abc =3 4 3? ab=3 4? 完完全全 和提交的答案不一樣。求大神具體幫我說(shuō)一下,怎么個(gè)運(yùn)算法。謝謝~
?實(shí)在是不理解 執(zhí)行表達(dá)式之前+1 or -1? 什么是表達(dá)式。 還有我想的答案 abc =3 4 3? ab=3 4? 完完全全 和提交的答案不一樣。求大神具體幫我說(shuō)一下,怎么個(gè)運(yùn)算法。謝謝~
2019-01-27
舉報(bào)
2020-05-29
我只能解釋一部分,抱歉,作為探討吧,第一個(gè)值,
理想是3,實(shí)際輸出了4,是因?yàn)椋?+操作符自動(dòng)賦值
舉例說(shuō) a++ 同等于 a=a+1 等于 a+=1,
所以你在b = a++的時(shí)候就相當(dāng)于 b= (a =a+1)或 b= (a +=1)括號(hào)是因?yàn)?+的優(yōu)先級(jí)
然后c 也就不用說(shuō)了 因?yàn)楝F(xiàn)在的 a = 4,然后下一步
var a = 3相當(dāng)于給 a 重新賦值,但第二局b = ++ a 又一次改變了 a 的值,
所以輸出了 a : 4? ?b: 4
至于++a,a++的區(qū)別,關(guān)系到更深層次,變量的進(jìn)棧出棧賦值,這里我也不是很懂,如果是新手的話先不要太過(guò)深究,我是新手,若有錯(cuò)誤,歡迎大佬指教
2019-01-27
++a? eg: a=1 ,b=++a 那么 b=2;//先加為敬,相當(dāng)于b = a; a = a + 1;
a++ eg: a=1 ,b=a++ 那么 b=1;//運(yùn)行過(guò)一次才加,相當(dāng)于a = a + 1; b = a;
這個(gè)自增/自減在循環(huán)里比較體現(xiàn)出
在js基礎(chǔ)里講述過(guò)變量可重復(fù)賦值
上述 var a=3; var b=a++; var c=a;
一開始a=3,b=a++的時(shí)候b=3,原因是a++運(yùn)行過(guò)一次才加
b=a++這條運(yùn)行后那么a=4了
在c=a時(shí)那么c=4;
所以輸出 4 3 4
?var a=3; var b=++a;
a又重新等于3了,b=++a,那么b=4,++a是先加,那么a也就執(zhí)行過(guò)了等于4
所以輸出 4 4