首頁 > web前端 > js教程 > 主體

JavaScript中switch判斷容易犯錯的一個細節_基礎知識

WBOY
發布: 2016-05-16 16:38:29
原創
1344 人瀏覽過

switch語句與if語句的關係最為密切,也是其它程式語言中普遍使用的一種流程控制語句,但switch的匹配是全等模式,如果不注意這個細節則寫程式時往往會出錯。

代碼:

var n = '5';
switch(n){
    case 5:
        alert('执行case分支');
        break;
    default:
        alert('执行default分支');
}
登入後複製

結果:

JavaScript中switch判斷容易犯錯的一個細節_基礎知識

可能很多人會誤以為以上程式會走case分支,結果卻走了default分支。難道它們兩個不相等嗎?我們使用if語句來看看。

代碼:

var n = '5';
if(n==5){
    alert('真 分支');
}else{
    alert('假 分支');
}
登入後複製

結果:

JavaScript中switch判斷容易犯錯的一個細節_基礎知識

在if語句裡可以匹配,但為何在switch語句裡不能匹配呢?

這是因為在switch語句裡的case使用全等模式,也就等於if裡的使用三個等號類似。我們把case的程式碼改寫一下

代碼:

var n = '5';
switch(n){
    case '5': // 把原来的 case 5 改写成 case '5'
        alert('执行case分支');
        break;
    default:
        alert('执行default分支');
}
登入後複製

結果:

JavaScript中switch判斷容易犯錯的一個細節_基礎知識

改寫了以後就能走case分支了,就像我們if裡使用三個全等號一樣

代碼:

var n = '5';
if(n===5){
    alert('真 分支');
}else{
    alert('假 分支');
}
登入後複製

結果:

JavaScript中switch判斷容易犯錯的一個細節_基礎知識

因為使用全等,所以字串5不等於數字5,結果走了假分支。

由上述例子說明在 switch中使用的是全等匹配模式,特別是數字與字串匹配的時候需要注意的一個問題

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!