老師,我 想分清這三個(gè)定義變量的方法為什么結(jié)果不一樣呢?
老師,您好。 我想問(wèn)的問(wèn)題是在while循環(huán)下,i++, i=i++, i=i+1 , 這三個(gè)變量,我前提的判斷條件已經(jīng)是i<=100了,i++和i=i+1的輸出結(jié)果一樣。為什么i=i++的輸出結(jié)果無(wú)線循環(huán)呢?謝謝老師
老師,您好。 我想問(wèn)的問(wèn)題是在while循環(huán)下,i++, i=i++, i=i+1 , 這三個(gè)變量,我前提的判斷條件已經(jīng)是i<=100了,i++和i=i+1的輸出結(jié)果一樣。為什么i=i++的輸出結(jié)果無(wú)線循環(huán)呢?謝謝老師
2017-06-22
舉報(bào)
2017-06-22
i=i++; 在循環(huán)中正常人都不會(huì)這么寫(xiě),要么直接i++,要么i = i+1,要么i = ++i。你這樣寫(xiě)i=i++和i=i沒(méi)什么區(qū)別。
沒(méi)必要糾結(jié)這些無(wú)意義的東西,有這個(gè)時(shí)間還不如去點(diǎn)實(shí)際的東西。
2017-06-22
因?yàn)?i=i++;是先賦值參加運(yùn)算,后自增,也就是說(shuō)在運(yùn)算結(jié)束之前都不會(huì)自增,在for循環(huán)這個(gè)閉包中,運(yùn)算不會(huì)停止,i就一直是初始值,只有當(dāng)跳出這個(gè)閉包運(yùn)算之后i才會(huì)自增,但你的i一直是初始值,所以一直是<=100的,就進(jìn)入了無(wú)限循環(huán)?
for(var i=0;i<3;){
i=++i;
console.log(i);
}
如此問(wèn)題解決,原因是i先賦值了,并且直接參與到閉包中
2017-06-22
因?yàn)閕=i++是先將“=”右邊的i賦值給左邊的i,然后i再自增,所以無(wú)論i自增到什么值,都和循環(huán)后的i沒(méi)有關(guān)系,循環(huán)后的i永遠(yuǎn)都是100,滿足你的條件i<=100,所以就一直不斷進(jìn)入無(wú)限循環(huán)了。