Доступ к переменным, объявленным внутри оператора переключателя JavaScript извне

Почему

switch ("string") {
  case "string":
    const text = "Hello World!"
    break
}

console.log(text)

вернуть error: Uncaught ReferenceError: text is not defined?

Я не понимаю, почему текст переменной возвращается неопределенным.

2 ответа

Потому что это не в том же объеме. Примерно так должно работать:

let text
switch ("string") {
  case "string":
    text = "Hello World!"
    break
}

console.log(text)

Объявление переменной с const похоже на let, когда дело доходит до Block Scope.

В этом примере x, объявленный в блоке, не совпадает с x, объявленным вне блока:

var x = 10;
// Here x is 10
{ 
  const x = 2;
  // Here x is 2
}
// Here x is 10

https://www.w3schools.com/js/js_const.asp

Другие вопросы по тегам