千鋒教育JavaScript全套視頻教程(10天學(xué)會Js,前端javascrip

預(yù)解析
????????=> 這個預(yù)解析不能演示
????????=> 全靠的是想象力
????????=> 就是在我們的代碼執(zhí)行之前的一個環(huán)節(jié)
????????=> 就是對我們的代碼進(jìn)行通讀并解釋
??????對哪些代碼進(jìn)行通讀并解釋(重點)
????????=> 第一個: 是對var關(guān)鍵字
??????????-> 會把var關(guān)鍵字和變量名提前 當(dāng)前作用域最前面
??????????-> 這個時候不賦值
????????=> 第二個: 是對聲明式函數(shù)
??????????-> 會把函數(shù)名提前 當(dāng)前作用域最前面
??????????-> 并同時賦值為一個函數(shù)
??????注意: 賦值式函數(shù)按照var的預(yù)解析規(guī)則進(jìn)行預(yù)解析
JS的預(yù)解析還有一些需要注意的細(xì)節(jié),包括以下幾點:
1.函數(shù)聲明和變量聲明的作用域
在預(yù)解析階段,函數(shù)聲明和變量聲明的作用域是整個函數(shù)或全局作用域。這意味著,在函數(shù)內(nèi)部聲明的函數(shù)和變量可以在整個函數(shù)內(nèi)部被訪問,而在全局作用域聲明的函數(shù)和變量可以在整個腳本中被訪問。
2.函數(shù)聲明和變量聲明的優(yōu)先級:
在預(yù)解析階段,函數(shù)聲明的優(yōu)先級高于變量聲明。這意味著,如果同名函數(shù)和變量同時聲明,函數(shù)聲明會覆蓋變量聲明。
3.非全局作用域的預(yù)解析:
在非全局作用域(如函數(shù)作用域)中,預(yù)解析只會發(fā)生在該作用域內(nèi)。這意味著,在函數(shù)內(nèi)部聲明的函數(shù)和變量只會被提升到該函數(shù)作用域的頂部,而不會影響到其他函數(shù)或全局作用域。
總的來說,預(yù)解析是JavaScript中的一個重要概念,可以幫助我們更好地理解變量和函數(shù)的作用域和生命周期。了解預(yù)解析的規(guī)則和特點,可以幫助我們編寫更加規(guī)范和可讀性更好的JavaScript代碼。
當(dāng)然,現(xiàn)在用了let、const和函數(shù)式表達(dá)式等,可以避免因為變量提升等帶來的小麻煩。