javascript中switch判斷理解誤區

最近開發中遇到一個坑,就是判斷  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中使用的是全等匹配模式,特別是數字與字符串匹配的時候需要注意的一個問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章