先上代碼
var a = 1;
function fn(){
console.log(this.a) //1
}
fn();
很顯然赞厕,此時(shí)的var聲明默認(rèn)掛在了window全局作用域上拍屑,函數(shù)預(yù)編譯階段,函數(shù)中的this也是指向window對(duì)象坑傅,所以輸出1
那把var變成let呢
let a = 1;
function fn(){
console.log(this.a) //undefined
}
fn();
我們發(fā)現(xiàn)僵驰,let聲明并沒有掛在了window全局作用域上,哪它去哪里了
這時(shí)候我們以上的代碼輸入到頁(yè)面控制臺(tái)上
我用dir方法打印出函數(shù)fn的屬性唁毒,最后在[[Scopes]]屬性內(nèi)找到了消失的全局變量a蒜茴。
我是自學(xué)前端小白,為了更好理解浆西,簡(jiǎn)單寫寫粉私,還望大神們不吝賜教!