javascript預編譯原理和例子

2021-07-15 10:34:35 字數 602 閱讀 8128

先看**:

alert( typeof vv);

var vv= "variable" ;

function

vv()

alert(vv);

script>

執行結果是」function」和」variable」。

照理說,一開始,vv有變數宣告,有vv函式的函式宣告,但vv的函式宣告覆蓋了變數宣告,所以typeof vv為 function.

然後vv被賦值為」variable」。所以,後面乙個alert(vv)的結果為:variable。

但當上面的**變為:

alert( typeof vv);

function

vv()

var vv= "variable" ;

alert(vv);

script>

執行結果也一樣,這就有蹊蹺了!!!說明了,js解析器是:先預宣告變數,再預定義函式 的。

小結一下:js 在執行前會進行類似」預編譯」的操作,而且先預定義變數再預定義函式。

JavaScript預編譯(函式)

知識點預習 1 js檔案的執行三部曲 語法分析 預編譯 解釋執行。2 變數未經宣告就使用,系統會報錯。3 var aa 夫 子 變數的宣告和賦值,aa為變數名,夫 子 是變數值。var aa是變數的宣告,aa 夫 子 是變數賦值。4 函式宣告 function demo 函式表示式 var demo...

javascript的預編譯階段

1.變數與函式 在js中宣告乙個變數有let const var三種方式,函式有宣告函式和函式表示式兩種。2.預編譯階段做的事情 在預編譯階段,所有的var宣告的變數會被初始化為undefined,所有的宣告函式會用它的定義進行初始化,而const let宣告的變數則不會在預編譯階段執行初始化,函式...

javascript基礎 預編譯 this指向

預編譯發生在函式執行前一刻,可以拆分成一下幾步 1 生成activation object 即ao物件 執行期上下文 2 查詢形參和變數,並將其作為ao物件的屬性,值為undefined 3 將實參的值賦給形參 4 在函式體內查詢函式宣告,並將值賦予函式體 看看下面的例子 function fn a...