84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
韓老師講到:
var a = 3;
var b = 4;
#var c = 1;
if ( a < b && --c && a)
{
window.alert("OK")
}
window.alert(c) // c = 0
window.alert(a) // a =3
那假若把「--c ”變成“c--“”,此時c的值也是0,為什麼a的值就變為4了呢?
望各位老師解答一下,謝謝!
--c 是先進行運算,後賦值給c ,也就是先斬後奏,當你殺他那時皇上還不知道,還認為他還沒死,所以c還是原來的c,後來禀報後才知道,他已經死了,這時c減了一。
而c-- 是減去後就賦值給c了,當時c就少一,也就是皇帝親自監斬。
對於--c時
a < b true
--c c先自減 c=0 false(0為假非0為真)
--c時,表達式左邊為false,右邊++a不進行運算,所以a的值還是3
c++時,表達式左邊為true,所以右邊++a還要進行運算,所以a的值變成4
var c = 1;
#if ( a < b && c-- && ++a);//此時c的值也是0了,應該也為假,++a就應該不進行運算了,那麼a的值應該還是3才對,為什麼會進行計算了呢?
#window.alert(a) // a =3
--c 是先進行運算,後賦值給c ,也就是先斬後奏,當你殺他那時皇上還不知道,還認為他還沒死,所以c還是原來的c,後來禀報後才知道,他已經死了,這時c減了一。
而c-- 是減去後就賦值給c了,當時c就少一,也就是皇帝親自監斬。
對於--c時
a < b true
--c c先自減 c=0 false(0為假非0為真)
###################################################### #a--c時,表達式左邊為false,右邊++a不進行運算,所以a的值還是3
c++時,表達式左邊為true,所以右邊++a還要進行運算,所以a的值變成4
var a = 3;
var b = 4;
var c = 1;
#if ( a < b && c-- && ++a);//此時c的值也是0了,應該也為假,++a就應該不進行運算了,那麼a的值應該還是3才對,為什麼會進行計算了呢?
{
window.alert("OK")
}
window.alert(c) // c = 0
#window.alert(a) // a =3