MNA*_*MNA 5 javascript switch-statement
我正在尝试使用 switch 语句来执行任务。我在第一种情况下使用 let 声明了一个变量。但是当我尝试在第二种情况下访问它时,它显示“未捕获的引用错误:t未定义”
x = "20";
switch (x) {
case '10':
let t = 15;
break;
case '20':
console.log(t);
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
未捕获的引用错误:t 未在 :6:21 定义
但如果我尝试在第二种情况下声明相同的变量
x = "20";
switch (x) {
case '10':
let t = 15;
break;
case '20':
let t = 150;
console.log(t);
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
未捕获的语法错误:标识符“t”已被声明
为什么会发生这种情况?如何在不使用 var 且不声明具有不同名称的变量的情况下解决此问题。提前致谢。
如果您在 case '10' 中声明变量,并且尝试访问 case '20' 中的变量,则会收到该错误,因为您尚未在 case '20' 范围内声明该变量。
如果您在不同情况下多次声明该变量,那么编译器将理解您正在尝试多次声明该变量;所以,它给了你这个错误。
这是应该的。您可以在 switch 语句之前声明它。因此,该变量在任何情况下都可以在开关下方使用。
x = "20";
let t = 0;
switch (x) {
case '10':
t = 15;
break;
case '20':
t = 150;
console.log(t);
}
Run Code Online (Sandbox Code Playgroud)