最近開發中遇到一個坑,就是判斷 input 中value帶的值 “1”,“2”,“3”,“4” 走swich判斷時,一直出錯,老是走不進判斷裏面,明明給的值都是1 ,2, 3,4...........
經過十幾分鐘的苦逼排錯,終於發現了癥結所在
switch語句與if語句的關係最爲密切,也是其它編程語言中普遍使用的一種流程控制語句,但switch的匹配是全等模式,如果不注意這個細節則寫程序時往往會出錯。 代碼: var n = '5'; switch(n){ case 5: alert('執行case分支'); break; default: alert('執行default分支'); } 結果:
可能很多人會誤以爲以上程序會走case分支,結果卻走了default分支。 這是因爲在switch語句裏的case使用全等模式,也就相當於if裏的使用三個等號類似。我們把case的代碼改寫一下
代碼: var n = '5'; switch(n){ case '5': // 把原來的 case 5 改寫成 case '5' alert('執行case分支'); break; default: alert('執行default分支'); } 結果:
改寫了以後就能走case分支了,就像我們if裏使用三個全等號一樣
由以上例子說明在switch中使用的是全等匹配模式,特別是數字與字符串匹配的時候需要注意的一個問題 |
javascript中switch判斷理解誤區
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.