js变量提升Hoisting

var v='Hello World'; 
(function(){ 
alert(v); 
var v='I love you'; 
})() 

最终结果为undefined
这里有私有作用域的语法,加上变量提升,这段代码相当于:

var v='Hello World'; 
(function(){ 
var v;
alert(v); 
v='I love you'; 
})() 

额外内容提示:函数声明有函数声明提升,而函数表达式方法没有

sayHi();
function sayHi() {
    alert("Hi");
}
sayHi();
var sayHi = function() {
    alert("Hi");
}

你可能感兴趣的:(js变量提升Hoisting)