1

为什么

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

console.log(text)

返回error: Uncaught ReferenceError: text is not defined

我不明白为什么变量文本返回未定义。

4

2 回答 2

2

因为不在同一个范围内。像这样的东西应该工作:

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

console.log(text)
于 2019-08-27T02:04:00.837 回答
1

当涉及到块作用域时,使用 const 声明变量与 let 类似。

在这个例子中,在块中声明的 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

于 2019-08-27T02:03:47.720 回答