在Javascript中分配多个值之前先声明var

Declare var before assigning multiple values in Javascript?

本文关键字:声明 var Javascript 分配      更新时间:2023-09-26

在Javascript中,var声明的哪种格式更好:

function test1() {
  switch(type) {
    case 1:
        var test = "Hello One"
      break;
    case 2:
        var test = "Hello Two"
      break;
  }
}

或者:

function test2() {
  var test;
  switch(type) {
    case 1:
        test = "Hello One"
      break;
    case 2:
        test = "Hello Two"
      break;
  }
}

test2()中,在赋值之前,有一行额外的代码可以将test声明为var,但这可以节省两次声明var test的时间。哪种方式比另一种好?

javascript没有块作用域,因此在开关块中声明变量不会像您预期的那样工作。

此外,由于变量提升,函数块中的所有变量声明都被解释器提升到顶部,您的代码将如下所示:

function test1() {
  var test;
  var test;
  switch(type) {
    case 1:
        test = "Hello One"
      break;
    case 2:
        test = "Hello Two"
      break;
  }
}

执行提升后,很容易看出第一个块不正确的原因。

IMO应首选第二种。

它更具沟通性,更接近实际发生的事情(例如,可变吊装)。

我也不喜欢将变量声明隐藏在看起来类似的范围内,但不是。

您的第一个代码是错误的;您已经多次声明同一个变量。

JSHint会抱怨它。