Closed4

JavaScript の switch の挙動

ckonackona
const expr = "first"
switch (expr) {
    case "first":
        console.log("1")
    case "second":
        console.log("2")
    case "third":
        console.log("3")
}

「"1", "2", "3"」が表示される。

ckonackona

break を書いておかないと、一度 case に入ってしまったらその case と次以降の case にも入ってしまう。

break を入れるようにすれば良い。

ckonackona

Ruby の場合は break は必要無い。
最初に合致した case のみ実行される。

ckonackona

TypeScript だとフォロースルーに対して警告を出してくれるオプションがあるので、 true 推奨っぽい。

フォールスルーはしばしばバグの原因になります。TypeScriptでは、コンパイラオプションnoFallthroughCasesInSwitchをtrueにすると、フォールスルーを警告するようになります。このオプションは有効化しておきましょう。

https://typescriptbook.jp/reference/statements/switch-fallthrough

このスクラップは2022/05/02にクローズされました