什么是作用域:瀏覽器給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)
作者:晉飛翔
手機號(微信同步):17812718961
希望本篇文章 能給正在學習 前端的朋友 或 以及工作的朋友 帶來收獲 不喜勿噴 如有建議 多多提議 謝謝!!!