8 回答

TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊
a=++i,先讓i+1,再賦值給a;a=++i,先將i賦值給a,再讓i+1;
如上面這個(gè)例子,? 先說(shuō)++i的情況,
第一次循環(huán):$div.html(++i)這句話之前,i=0,因此,先加1,再傳遞給html,所以html顯示為1
第二次虛幻:因?yàn)閯偛興iv的html為1了,所以$div.html(++i)這句話之前,i=1,再加1,再傳遞給html,顯示2
所以++i是可以運(yùn)行的;
i++的情況,
第一次循環(huán):$div.html(++i)這句話之前,i=0,先將i=0傳遞給html,再加1,所以第一次循環(huán)結(jié)束時(shí),html顯示0,但是此時(shí)的i是1;
第二次循環(huán):i是1,但是經(jīng)過(guò)這句話i = parseInt($div.text()),i又變成了html的值(即0),然后又重復(fù)第一次循環(huán),所以你看到一直是0;
你可以在? $div.html(++i);前后加上alert(i)進(jìn)行測(cè)試

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超2個(gè)贊
相同點(diǎn):
????i++和++i都是自增1.
不同點(diǎn):
????++i是先做i+1,再執(zhí)行后面語(yǔ)句。(執(zhí)行完本條語(yǔ)句i=i+1)
????i++是先執(zhí)行完后面語(yǔ)句,才+1。(執(zhí)行完后面語(yǔ)句i=i+1)
為什么不計(jì)時(shí):
????可以理解為沒(méi)有執(zhí)行完后面語(yǔ)句,也就是循環(huán)未結(jié)束(無(wú)限循環(huán))經(jīng)過(guò)?i = parseInt($div.text()),i也是0。
什么邏輯:
????就是這個(gè)邏輯。

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超2個(gè)贊
上面的答案都不嚴(yán)謹(jǐn)
a=i++是a=(i++的返回值)
a=++i是a=(++i的返回值)
i++返回i未自增之前的值
++i返回i自增后的值

TA貢獻(xiàn)63條經(jīng)驗(yàn) 獲得超18個(gè)贊
開(kāi)發(fā)時(shí)盡量避開(kāi)兩者之間的區(qū)別,只需知道,它們都是把 i 的值 加 1 即可。不要給自己找麻煩

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
唯一的區(qū)別:
++i,是在運(yùn)算i之前給i先加1,在參加運(yùn)算
i++,是參加完運(yùn)算后給i加1

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