スイッチステートメントは、IFステートメントと最も密接に関連しており、他のプログラミング言語で一般的に使用されるプロセス制御ステートメントでもあります。ただし、スイッチマッチは一致するパターンです。この詳細に注意を払わないと、プログラムを書くときに間違いを犯すことがよくあります。
コード:
var n = '5'; switch(n){case 5:alert( 'execute case branch'); break; default:alert( 'execute branch');}結果:
多くの人々は、上記のプログラムがケースブランチに送られると誤って考えるかもしれませんが、最終的にはデフォルトのブランチに送られます。それらは平等ではありませんか? IFステートメントを使用して表示します。
コード:
var n = '5'; if(n == 5){alert( 'true branch');} else {alert( 'false branch');}結果:
IFステートメントで一致させることができますが、なぜスイッチステートメントで一致させることができないのですか?
これは、Switchステートメントのケースが収束モードを使用しているためです。これは、IFで3つの等しい符号の使用に相当します。ケースのコードを書き直しましょう
コード:
var n = '5'; switch(n){case '5'://元のケース5をケース '5'Alert(' execute case branch '); break; default:alert(' execute branch ');}結果:
書き換えた後、3つの等しいサインを使用するのと同じように、ケースブランチに行くことができます
コード:
var n = '5'; if(n === 5){alert( 'true branch');} else {alert( 'false branch');}結果:
収束が使用されるため、文字列5は5番に等しくなく、誤ったブランチはなくなりました。
上記の例は、特に数字が文字列に一致する場合、スイッチで合同マッチングパターンを使用する場合に注意する必要がある問題を示しています。