在if条件中声明变量两次可能会出现什么问题?

1 javascript

在if条件中声明变量两次可能会出现什么问题?

我知道这不是最好的方法!
我知道我可以在if条件之外声明变量.

我不是在寻求解决方案!我不知道如何声明我的变量.我想理解为什么这是一个在if条件块中声明变量的错误方法.

/* Yes I know I can just have condition instead of condition === true, 
   this is only for simplicity */
if(condition === true){ 
    var StuckUps = "over 9000";
}else if(condition === false){
    var StuckUps = "Nothing";
}

alert(StuckUps) /* Yes I can access it outside the if condition!*/
Run Code Online (Sandbox Code Playgroud)

如果只执行一个条件,为什么这会是一个坏习惯,这意味着变量只会被声明一次.它的真正问题是什么?

小智 7

你是正确的,没错,但是如ECMAscript中所规定的那样,它将被提升到最近的函数定义的顶部.

这可能会导致在拥有大量代码库时出现问题并且"难以"找到.