【问题标题】:JavaScript: Can I declare variables inside switch cases? [duplicate]JavaScript:我可以在 switch 案例中声明变量吗? [复制]
【发布时间】:2015-12-15 07:40:09
【问题描述】:

在 C 语言中,不能在“case”语句中声明任何变量。

switch ( i ){
case 1:
  int a = 1; //error!
  break;
}

但是,当您使用大括号时,您可以。

switch ( i ){
case 1:
  {// create another scope.
    int a = 1; //this is OK.
  }
  break;
}

在 Javascript 的情况下,我可以在 case 语句中直接使用 var 吗?

switch ( i ){
case 1:
  var a = 1
  break
}

似乎没有错误,但我不确定这在语法上是否正常。

【问题讨论】:

  • 简单的答案是是的
  • javascript es5 仅具有函数作用域,a 将是函数的本地,而不是开关
  • @Haketo 那么,Javascript 只能在全局和函数中具有作用域吗?
  • @PRIX 使用var,是的。您可以在链接的帖子中看到许多示例
  • 注意不能在不同的casesbecause there is only one underlying block中声明同一个变量。

标签: javascript variables switch-statement case declare


【解决方案1】:

是的,在 javascript 中你可以这样做,但我认为测试它会简单得多:

Fiddle

var i = 1;
switch ( i ){
case 1:
  var a = 1;
  alert(a);
  break;
}

【讨论】:

    猜你喜欢
    • 2010-11-10
    • 2015-04-18
    • 2013-11-03
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多