8 回答

TA貢獻361條經驗 獲得超191個贊
a=++i,先讓i+1,再賦值給a;a=++i,先將i賦值給a,再讓i+1;
如上面這個例子,? 先說++i的情況,
第一次循環(huán):$div.html(++i)這句話之前,i=0,因此,先加1,再傳遞給html,所以html顯示為1
第二次虛幻:因為剛才div的html為1了,所以$div.html(++i)這句話之前,i=1,再加1,再傳遞給html,顯示2
所以++i是可以運行的;
i++的情況,
第一次循環(huán):$div.html(++i)這句話之前,i=0,先將i=0傳遞給html,再加1,所以第一次循環(huán)結束時,html顯示0,但是此時的i是1;
第二次循環(huán):i是1,但是經過這句話i = parseInt($div.text()),i又變成了html的值(即0),然后又重復第一次循環(huán),所以你看到一直是0;
你可以在? $div.html(++i);前后加上alert(i)進行測試

TA貢獻1條經驗 獲得超2個贊
相同點:
????i++和++i都是自增1.
不同點:
????++i是先做i+1,再執(zhí)行后面語句。(執(zhí)行完本條語句i=i+1)
????i++是先執(zhí)行完后面語句,才+1。(執(zhí)行完后面語句i=i+1)
為什么不計時:
????可以理解為沒有執(zhí)行完后面語句,也就是循環(huán)未結束(無限循環(huán))經過?i = parseInt($div.text()),i也是0。
什么邏輯:
????就是這個邏輯。

TA貢獻189條經驗 獲得超236個贊
建議你看看慕課的C語言基礎,看完應該就能明白了。
最簡單一句話,++i,就是先加1,在賦值。i++,就是先賦值,再加1。
本身,他倆都是實現(xiàn)自增,但是放到循環(huán)中的話,就會有影響。
例如,你用了setTimeout()方法,如果換成i++的話,一秒后執(zhí)行的結果是不變的。
建議,你把setTimeout()換成setInterval() 自己仔細體會一下。望采納
添加回答
舉報