變量提高函數
在ES6以前,JS沒有塊級做用域,只有全局做用域和函數做用域(局部做用域)。spa
變量提高:就是將變量聲明提高到它所在的做用域的最頂端code
console.log(a) //undefined var a = 1; console.log(a) //1 function fn(){ console.log(b) //undefined var b = 2; console.log(b) //2 } fn() //實際上上面的代碼是按照如下順序執行的 var a; console.log(a) a = 1; console.log(a) function fn(){ var b; console.log(b) b = 2 console.log(b) } fn()
函數提高blog
在JS中建立函數有兩種方式:聲明式和表達式。只有聲明式才存在函數提高。作用域
console.log(fn1) //function fn1(){} console.log(fn2) //undefined function fn1(){} var fn2 = function(){} //實際上 以上代碼是按照如下順序執行的 function fn1(){} console.log(fn1) console.log(fn2) var fn2 = function(){}