JS Switch Scope

case 裡的變數實際上是全域的

switch (true) {
    case 1: 
        const name = 'cola'
        console.log(name)
        break
    case 2: 
        const name = 'bear'
        console.log(name)
        break
}

output: Uncaught SyntaxError: Identifier 'name' has already been declared


實際上可以在 case 裡用 {} 劃份 scope

switch (true) {
    case value: {
      const name = 'cola'
      // ...
    }
    break;
    case value: {
       const name = 'bear'
      // ...
    }
    break;
}

在 PHP 反倒是沒這樣的情況~

1個讚