ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptのスイッチ判定で間違いやすい細部_基礎知識

JavaScriptのスイッチ判定で間違いやすい細部_基礎知識

WBOY
リリース: 2016-05-16 16:38:29
オリジナル
1384 人が閲覧しました

switch ステートメントは if ステートメントと最も密接に関連しており、他のプログラミング言語でもよく使用されるフロー制御ステートメントですが、この詳細に注意しないと、switch ステートメントは合同モードになります。プログラムを書くときによくエラーを起こします。

コード:

var n = '5';
switch(n){
    case 5:
        alert('执行case分支');
        break;
    default:
        alert('执行default分支');
}
ログイン後にコピー

結果:

JavaScriptのスイッチ判定で間違いやすい細部_基礎知識

多くの人は、上記のプログラムが case ブランチを選択すると誤解しているかもしれませんが、最終的にはデフォルトのブランチを選択します。二人は同等ではないですか? if文を使って見てみましょう。

コード:

var n = '5';
if(n==5){
    alert('真 分支');
}else{
    alert('假 分支');
}
ログイン後にコピー

結果:

JavaScriptのスイッチ判定で間違いやすい細部_基礎知識

if ステートメントでは一致するのに、switch ステートメントでは一致しないのはなぜですか?

これは、switch ステートメントの case で合同モードが使用されているためです。これは、if で 3 つの等号を使用するのと同じです。ケースコードを書き換えてみましょう

コード:

var n = '5';
switch(n){
    case '5': // 把原来的 case 5 改写成 case '5'
        alert('执行case分支');
        break;
    default:
        alert('执行default分支');
}
ログイン後にコピー

結果:

JavaScriptのスイッチ判定で間違いやすい細部_基礎知識

書き換えた後は、

の場合に 3 つの合同符号を使用するのと同じように、ケース分岐を取ることができます。

コード:

var n = '5';
if(n===5){
    alert('真 分支');
}else{
    alert('假 分支');
}
ログイン後にコピー

結果:

JavaScriptのスイッチ判定で間違いやすい細部_基礎知識

合同が使用されているため、文字列 5 は数値 5 と等しくなく、結果は偽分岐になります。

上記の例は、switch で合同マッチング モードが使用されていることを示しています。特に、数値と文字列をマッチングするときに注意する必要がある問題です

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート