課程
/前端開發
/JavaScript
/JavaScript進階篇
?把mynum=mynum-1換成mynum=mynum--系統就會崩潰
2016-10-14
源自:JavaScript進階篇 4-7
正在回答
這里出現無限循環,是因為這是一個自己等于自己副本的賦值方式,
原來帶后置型遞增(減)符的變量是在包含它的語句被求值之后才去執行,
這里語句i=i++,語句被求值剛好是i,被求值i出來后,i的運算就已經執行完畢,后面的遞增(減)執行直接被跳過了;
i在下一次循環中開始時候,值沒有變化,就不能跳出循環。
qq_謎離_03319966 提問者
還有你把--a,b--改寫成a=--a,b=b--試試,不一樣的
一次運算可能i++沒有意義但是要是循環就有意義了,就被賦值了
這個6啊,系統真的崩潰了
在javascript中遇到這2個家伙之后一直無法理解
在百度查閱了很多文章
大致上都是說可以分開看成如下:
i=i++ 等于(i=i;i=i+1)意識是先賦值 在做運算
i=++I 等于(i=i+1;i=i)意識是做運算 在賦值
我一直無法理解的地方在于這句話“意識是先賦值 在做運算”
這里的運算不也是賦值嗎 “=”就是賦值的意識啊 百度查閱到的文章大都是這樣分開為(i=i;i=i+1)(i=i+1;i=i)但是在我的學習中我100%確定“=”就是賦值 所以大家的表示方式是錯誤的。
i=i++意識是先把i的值賦給i 在做運算+1 但是沒有賦值 這個運算我理解為毫無意義
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>do...while</title> <script?type="text/javascript"> ????var?a?=6;//mynum初值化數值為6 ????var?b?=6; ????--a; ????b--; ????document.write("a="+a+"<br/>"); ????document.write("b="+b); </script> </head> <body> </body> </html> 結果都一樣的啊
mynum--相當于mynum=mynum-1,當你把代碼寫成mynum=mynum--時,編譯時可以認為是
mynum=mynum=mynum-1 這樣是沒辦法編譯通過的。
Hey你的益達 回復 qq_謎離_03319966 提問者
mynum--;
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
3 回答mynum=mynum+1把這里去掉或者改成mynum++都會崩潰是什么原因?
5 回答 mynum=mynum+1;問題
3 回答mynum=mynum-1 中的-1是啥意思
3 回答mynum=mynum+1;是什么意思啊
3 回答為什么要添加mynum=mynum+1?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-28
這里出現無限循環,是因為這是一個自己等于自己副本的賦值方式,
原來帶后置型遞增(減)符的變量是在包含它的語句被求值之后才去執行,
這里語句i=i++,語句被求值剛好是i,被求值i出來后,i的運算就已經執行完畢,后面的遞增(減)執行直接被跳過了;
i在下一次循環中開始時候,值沒有變化,就不能跳出循環。
2018-07-25
還有你把--a,b--改寫成a=--a,b=b--試試,不一樣的
2018-07-25
一次運算可能i++沒有意義但是要是循環就有意義了,就被賦值了
2016-11-03
這個6啊,系統真的崩潰了
2016-10-14
在javascript中遇到這2個家伙之后一直無法理解
在百度查閱了很多文章
大致上都是說可以分開看成如下:
i=i++ 等于(i=i;i=i+1)意識是先賦值 在做運算
i=++I 等于(i=i+1;i=i)意識是做運算 在賦值
我一直無法理解的地方在于這句話“意識是先賦值 在做運算”
這里的運算不也是賦值嗎 “=”就是賦值的意識啊 百度查閱到的文章大都是這樣分開為(i=i;i=i+1)(i=i+1;i=i)但是在我的學習中我100%確定“=”就是賦值 所以大家的表示方式是錯誤的。
i=i++意識是先把i的值賦給i 在做運算+1 但是沒有賦值 這個運算我理解為毫無意義
2016-10-14
2016-10-14
mynum--相當于mynum=mynum-1,當你把代碼寫成mynum=mynum--時,編譯時可以認為是
mynum=mynum=mynum-1 這樣是沒辦法編譯通過的。
2016-10-14
mynum--;