什麼是作用域:瀏覽器給js的生存環境叫作用域。 什麼是變數提升: Js代碼執行前,瀏覽器會給一個全局作用域window Window分兩個模塊一個是存儲模塊一個是執行模塊 存儲模塊找到所有的var和function 關鍵字給這些變數添加記憶體地址 執行模塊,代碼從上到下執行,遇到變數就會去存儲模塊查找 ...
什麼是作用域:瀏覽器給js的生存環境叫作用域。
什麼是變數提升:
Js代碼執行前,瀏覽器會給一個全局作用域window
Window分兩個模塊一個是存儲模塊一個是執行模塊
存儲模塊找到所有的var和function 關鍵字給這些變數添加記憶體地址
執行模塊,代碼從上到下執行,遇到變數就會去存儲模塊查找,有和沒有
有就看你賦值沒有,賦值了就是後面的值沒有賦值就是undefined。
沒有結果就是xxx is not defined
什麼是原型鏈:函數內部的變數被使用時,首先會在自己的私有作用域下查找是否有這個變數,有就直接使用,沒有就向他的上一級查找,父級有就使用父級的,父級沒有就以此繼續向上查找直到查找帶window有就使用沒有就是is not defined。這種查找機制我們叫原型鏈。
案例分析
函數歸屬誰,跟她在哪調用沒有關係,而是在哪定義有關。
函數外的變數叫全局變數,函數內的變數叫私有變數。
看變數歸誰,看他在哪個作用域下聲明。
360經典面試題
+function(){
console.log(a)
var a=5;
function a(){}
console.log(a)
function b(){}
b=6
console.log(b)
var c=d=b
}()
console.log(d)
console.log(c)
作者:晉飛翔
QQ:318080891