js變數提升、函式提升詳解
阿新 • • 發佈:2018-11-25
一、變數提升是指將變數宣告提升到它所在作用域的最開始部分
console.log(a) // undefined
var a = 1;
console.log(a) // 1
為什麼會出現以上的結果,是因為js的變數提升,將a變數的宣告提升到全域性作用域的最上面部分,實際程式碼如下:
var a;
console.log(a)
a = 1;
console.log(a)
二、函式提升是指將函式宣告提升到它所在作用域的最開始部分
備註:js建立函式有兩種方式,一種是函式宣告和函式表示式,只有函式宣告才存在函式提升
var fn = function() {
console.log('test')
}
function fn() {
console.log('test1')
}
console.log(fn()) // 'test'
為什麼會出現以上結果,是因為js的變數提升,將函式宣告提到該函式作用的最上部分,實際程式碼如下:
function fn() {
console.log('test1')
}
var fn = function() {
console.log('test')
}
console.log(fn())