廢話不多說(shuō)运敢,直接看以下例子,代碼地址:
函數(shù)聲明和函數(shù)表達(dá)式
a()
function a(){
console.log('a');
}
b()
var b = function (){
console.log('b')
}
//a
//Uncaught TypeError: b is not a function
很明顯忠售,這個(gè)大家都知道這個(gè)答案传惠,就是很常見(jiàn)的作用域提前,我們下面來(lái)解析下上面的例子稻扬。其實(shí)上面的例子等價(jià)于:
var a = function (){
console.log('a')
}
var b;
a()
b()
b = function(){
console.log('b')
}
變量作用域提升(僅考慮局部變量)
a()
var a = 1;
function a(){
console.log('a')
}
a();
//a
//Uncaught TypeError: a is not a function
等價(jià)于下面的代碼
var a;
a = function(){
console.log('a')
}
a()
a = 1;
a()
到這里大家應(yīng)該都明白了