預(yù)解釋分析規(guī)律
- 預(yù)解釋
- 代碼從上到下執(zhí)行
- 當(dāng)我們遇到“函數(shù)定義階段”的時候,不管拉讯,因?yàn)樵陬A(yù)解釋階段浊竟,函數(shù)已經(jīng)聲明+定義過了
- 當(dāng)我們遇到“函數(shù)調(diào)用階段”的時候
- 形成私有作用域
- 形參賦值
- 預(yù)解釋
- 代碼從上到下執(zhí)行
注意:在函數(shù)調(diào)用,一定要順帶寫上“該函數(shù)對應(yīng)的堆內(nèi)存地址”丛版,因?yàn)檎疑霞壸饔糜虻臅r候要用到
上級作用域
上級作用域跟函數(shù)在哪里調(diào)用無關(guān)莲兢,只跟函數(shù)對應(yīng)堆內(nèi)存在哪里開辟有關(guān)
關(guān)注
- 內(nèi)存和內(nèi)存釋放
- 不釋放
- 不立即釋放
- 立即釋放
- 一旦私有作用域得到釋放汹来,函數(shù)的每次調(diào)用之間,沒有任何關(guān)系
- 預(yù)解釋無節(jié)操
- 只對等號左邊帶var的進(jìn)行預(yù)解釋改艇,只聲明收班,不定義
- 聲明過的不會重新聲明,但是會重新賦值
- 自執(zhí)行函數(shù)不會進(jìn)行預(yù)解釋谒兄,只有執(zhí)行到它的時候摔桦,聲明+定義+調(diào)用 同時完成
- (針對IE10以下)條件判斷語句中,無論條件是否成立承疲,都會進(jìn)行預(yù)解釋
- return后面的語句邻耕,不會進(jìn)行預(yù)解釋,return下面的語句燕鸽,雖然不執(zhí)行兄世,但是會進(jìn)行預(yù)解釋
this
- 當(dāng)前函數(shù)被調(diào)用后,看前面是否有“.”啊研,點(diǎn)前面是誰御滩,this就是誰鸥拧,如果沒有“.”,那么this就是window
- 當(dāng)元素身上的事件被觸發(fā)的時候削解,會執(zhí)行一個函數(shù)富弦,函數(shù)中的this指向觸發(fā)事件的元素
- 自執(zhí)行函數(shù)中的this,永遠(yuǎn)指向window
- 回調(diào)函數(shù)中的this氛驮,一般執(zhí)行window腕柜,可以通過thisArg進(jìn)行更改
- 構(gòu)造函數(shù)中的this執(zhí)行實(shí)例
帶var和不帶var的區(qū)別
- 帶var:1. 會進(jìn)行預(yù)解釋 2. 在私有作用域下,是私有變量
- 不帶var:1. 不會進(jìn)行預(yù)解釋 2. 在私有作用域下矫废,是window的全局屬性
運(yùn)算符的優(yōu)先級
算數(shù) > 比較 > 邏輯 > 賦值