我知道所有变量都是悬挂的但是分配不是(从不介意这个问题的功能 - 这对我来说很有意义 - related SO)。
但我不知道这会如何影响代码。我写了一个小提琴来试验。
如果你提升变量并给它显示未定义的值,有什么好处。
var a = 1;
function foo (proxy){
print(proxy);
}
function print(out){
document.getElementById("out").innerHTML = out;
}
// foo("you")
print(d); // undefined
var d = 4;
print(d); // 4
答案 0 :(得分:2)
这是影响输出的一种方式:
function outer ( ) {
var a = 'foo';
function inner ( ) {
console.log( a );
var a = 'bar';
}
inner();
};
不提升outer()
会输出'foo'
,但由于本地var a
声明已提升,因此会输出undefined
。这不是很有用,但它表明它可以起作用。
编写JavaScript时,变量提升没有任何好处。通过在每个函数的开头声明所有变量(不指定它们),可以在没有它的情况下轻松完成它所实现的任何事情。它只是一个实现细节。