switch / case文件中的JavaScript变量范围是什么?

前端之家收集整理的这篇文章主要介绍了switch / case文件中的JavaScript变量范围是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用ASP.NET MVC创建 JavaScript时,我注意到几个范围警告,并意识到我缺少理解switch / case语句中变量范围的内容.

警告:“我”已经被定义为涉及案例b和案例c

我的代码看起来类似于:

switch(element) {
  case 'a':
   for(var i=0; i < count; i++){
    do something
   }
   break;

  case 'b':
   for(var i=0; i < count; i++){
    do something
   }
   break;

  case 'c':
   for(var i=0; i < count; i++){
    do something
   }
   break;
}

我认为范围以每个break语句结束,但是看起来范围在结束switch / case之前不会结束.是整个开关/箱的范围?

解决方法

Javascript不使用块范围.

因此,所有局部变量在它们被声明的整个功能范围内.

然而,在你的具体情况下,没有类似C语言的语言(我知道的),其中每个case语句形成一个独立的范围.
例如,以下C#代码将无法编译:

switch(someVar) {
    case 1:
        int a;
        break;
    case 2:
        int a;        //'a' is already defined
        break;
}

猜你在找的JavaScript相关文章