為什麼"a--"與"--a"算出來的答案會(huì)不同?
當(dāng)?shù)谖逍袨椋--",網(wǎng)頁(yè)顯示為"6":
<script?type="text/javascript"> ??var?a,test1,test2; ??var?a=5;? ??test1?=?a++; ??test2?=?a--; ??document.write(test2); </script>
當(dāng)?shù)谖逍袨椋?-a",網(wǎng)頁(yè)顯示為"5":
<script?type="text/javascript"> ??var?a,test1,test2; ??var?a=5;? ??test1?=?a++; ??test2?=?--a; ??document.write(test2); </script>
為什麼會(huì)有這樣子的差異?
2016-08-19
一.從上開始運(yùn)算
a=5;
test1=a++ 可以看成 test1=a,a=a+1;(即test1=5, a=6);
test2=a--可看成test2=a, a=a-1;(上面運(yùn)算得a=6, 即test2=6, a=6-1);
運(yùn)算得 test2=6
二. a=5
test1=a++ ,同上: test1=5,a=6;
test2=--a , 可以看成 a=a-1, test2=a ;(即 a=6-1 , test2=a )
運(yùn)算得 test2=5
2016-10-12
2016-08-19
代碼是逐行執(zhí)行的。。。。-/+在前 ?就說明先執(zhí)行自增或自減 在執(zhí)行這一行。反之你懂得
2016-08-19
test1=a++可以分解為
test1=a;
a=a+1;
test2=--a可以分解為
a=a-1;
test2=a;
2016-08-19
先后的問題?
2016-08-19
a--是先運(yùn)算再自減。如果你你還不理解,或者你想加深理解,可以再下面加一行text2的輸出,你就會(huì)發(fā)現(xiàn)有變化了
2016-08-19
先后順序的問題,a--,是先運(yùn)算一輪后在減去1,而--a,是直接減去1,在進(jìn)行運(yùn)算,
2016-08-19
a=5
都執(zhí)行test=a++后,a=6
a--是先輸出他原來的6再執(zhí)行a=a-1運(yùn)算
a--的數(shù)值相當(dāng)于:6 5 4 3 2 1 ……
--a是先運(yùn)行a=a-1再進(jìn)行輸出
--a的數(shù)值相當(dāng)于:5 4 3 2 1……
test1都是寫在test2上面的,就要先執(zhí)行test1
第一個(gè)test1=a++先在a的基礎(chǔ)上加1,即a=6,再執(zhí)行test2=a--就得到了a=6。
第一個(gè)test1=a++先在a的基礎(chǔ)上加1,即a=6,再執(zhí)行test2=--a就得到了a=5。
2016-08-19
a++是先傳參再+1,所以a=6;a--是a先傳參再-1,所以test2=a,test=6;同理,a++,a=6,--a是先-1,所以此時(shí)a=5;test2=5.