一、作用域
1.作用域:
ES5:全局作用域、函數(shù)作用域;
2.全局作用域:
直接定義在script標(biāo)簽下的域(范圍),叫作全局作用域;
3.全局變量:
1.var abc;
2.function fn(){}
4.局部作用域:
任意一個(gè)function(){}都會(huì)開啟一個(gè)局部作用域;
5.注意:
1.本作用域里面沒有聲明對應(yīng)的變量,那么找父級要。一層一層往外找!
2.函數(shù)的作用域,在哪里定義,就是在哪里產(chǎn)生作用域。
3.在不同作用域聲明的變量,不會(huì)相互影響;
6.變量泄露:
如果說沒有先定義的變量,直接賦值,變量會(huì)掛載到全局作用域里。到造成全局作用域的污染;
二、函數(shù)解析順序
1.聲明/定義:
var a;
2.執(zhí)行:( for循環(huán)、綁定事件、操作標(biāo)簽、對象添加/刪除)
a = 1(賦值);
3.變量的提升:
聲明的階段,都會(huì)進(jìn)行一個(gè)變量的提升。function聲明的變量,優(yōu)先權(quán)會(huì)比var 聲明的變量優(yōu)先級高;