在这种情况下正确初始化变量的方法?

Yim*_*Yim 4 javascript variables initialization

我知道最常见的做法是放在var a,b;顶部,但我想提取所有可能的角色(在JS Uglify上运行之后),似乎它们不会删除不必要的var初始化

我想知道以下任何一种情况是否会导致问题,建议使用哪种方法

情况1:

if(condition){
    var a=-1;
    var b="++";
}else{
    var a=1;
    var b="--";
}
Run Code Online (Sandbox Code Playgroud)

案例2:

if(condition){
    var a=-1;
    var b="++";
}else{
    a=1;
    b="--";
}
Run Code Online (Sandbox Code Playgroud)

案例3:

if(condition){
    a=-1;
    b="++";
}else{
    var a=1;
    var b="--";
}
Run Code Online (Sandbox Code Playgroud)

kem*_*002 7

这是应该的方式:

var a,b;

if(condition)
{
   a = -1;
   b = "++";
}
else
{
  a = 1;
  b = "--"
}
Run Code Online (Sandbox Code Playgroud)

应始终使用var关键字在函数顶部声明变量.变量范围位于函数级别,而不使用var使其成为全局变量.在顶部声明它总是确保你知道整个函数的范围(并且无论如何),所以当另一个程序员查看它并且不知道范围是在函数级别时,他/她不会感到困惑并认为范围仅在有条件的范围内.

  • 如果不使用var,它将创建一个全局变量.它不会删除它们,因为它们是必需的. (2认同)