在JS中,在给变量赋值之前声明变量名有什么好处?

时间:2018-10-23 01:53:46

标签: javascript variables var

通常我会声明一个值如下的变量:

var foo = "I am foo";

但是最近我看到了先声明的变量名,然后再声明一个值,如下所示: var foo;

foo = "I am foo";

用这种方法有什么好处?

2 个答案:

答案 0 :(得分:3)

没有特别的“好处”。但是在某些情况下需要这样做,最值得注意的是条件声明:

var foo;

if (bar) {
    foo = 'baz';
} else {
    foo = 42;
}

var中两次使用if..else可能会出错或至少会产生误导。如果您使用let而不是var,甚至会错误地定义变量的范围。

答案 1 :(得分:2)

仅当您不知道要为其分配什么值时才发挥作用,而不是重新分配值。例如

var foo;
if(someCond){
  foo = "this";
} else if(someOtherCond){
  foo = "that";
}