首页 > 解决方案 > 如何在多个 switch 案例中使用用 let 声明的变量名?

问题描述

我正在尝试使用 switch 语句来执行任务。在第一种情况下,我使用 let 声明了一个变量。但是当我尝试在第二种情况下访问它时,它会显示“未捕获的 ReferenceError:t 未定义”

x = "20";
switch (x) {
  case '10':
    let t = 15;
    break;
  case '20':
    console.log(t);
}

我收到这个错误

未捕获的 ReferenceError:t 未在 :6:21 定义

但是如果我尝试在第二种情况下声明相同的变量,那么

x = "20";
switch (x) {
  case '10':
    let t = 15;
    break;
  case '20':
    let t = 150;
    console.log(t);
}

我得到这个错误

未捕获的 SyntaxError:标识符 't' 已被声明

为什么会这样?如何在不使用 var 且不使用不同名称声明变量的情况下解决此问题。提前致谢。

标签: javascriptswitch-statement

解决方案


如果您在 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);    
    }


推荐阅读