文章詳情頁
javascript - z=z=z++里的執行過程
瀏覽:132日期:2023-03-17 09:27:41
問題描述
var z = 0;z=z=z++;alert(z);
彈窗是0,為什么?
跟
var z = 0;z++;z=z;alert(z);
的區別?
問題解答
回答1:好奇你這是為了做題還是你在哪個開源項目的代碼中看到過作者使用這樣的書寫方式, 如果是為了做題或筆試, 建議不要考慮這樣的學校或公司. 因為此題毫無意義, swift3甚至去掉了++操作符, 人生短暫, 把時間浪費在讓人confusing或容易出錯的語法特性上不值.
回答2:兩個點:
a = a++ 先賦值,后自增
賦值表達式是有返回值的,簡稱為表達式的值
z=z=z++;
相當于將「z=z++」表達式的值賦值給z,而「z=z++」的值等于「z++」,「z++」先使用z當前值,后自增
回答3:后置自增:n++這樣的表達式會返回一個n原始值的副本,然后將n原始值++n = n++ 后置自增運算符的優先級高于賦值所以=右側會先將n自增并返回n的原始值副本然后進行賦值操作 將n的原始值賦值給n,所以n的值不變
回答4:z++是個表達式,表達式的結果還是z,所以 z=z++相當于z=z 啥也沒做,你要了解下 z++的邏輯是先返回變量的值,然后才自增。
或者你用++z,前自增是先自增,然后返回自增后的結果
回答5:等價于
a=z++;z=a;z=z;回答6:
++ 和= 運算順序的問題 建議看一下 運算 賦值的優先級
標簽:
JavaScript
相關文章:
1. javascript - JS設置Video視頻對象的currentTime時出現了問題,IE,Edge,火狐,都可以設置,反而chrom卻...2. java固定鍵值轉換,使用枚舉實現字典?3. 如何為每個應用程序配置tomcat 6的logs / catalina.out。(為sys.out,sys.err配置Web應用程序特定的日志文件)4. css - ionic中的柵格布局如何讓文字內容多少不同的每一列中的內容都能垂直居中?5. php自學從哪里開始?6. phpstady在win10上運行7. java - 我設置了cookie的max age,但是cookie依然在關閉游覽器后消失了8. vim - win10無法打開markdown編輯器9. 這是什么情況???10. javascript - 用jsonp抓取qq音樂總是說回調函數沒有定義
排行榜
