js的預編譯做了哪些事情

2021-10-08 01:55:00 字數 1289 閱讀 6603

js執行的三部曲

1語法解析:總體掃瞄一遍一遍看一下是不是有低階語法錯誤

2.預編譯:函式執行前會進行預編譯

3.解釋執行:一行一行的進行編譯

我們主要說一下預編譯

//預編譯

//變數未經宣告就賦值,此變數就為全域性變數

functiona(

)console.

log(b)

//20

console.

log(a)

//報錯

//變數 宣告提公升

console.

log(a)

//undefined

var a =

123//函式宣告整體提公升

console.

log(b)

varb

=function()

1.建立ao物件

2.找形參和變數宣告,將變數和形參名作為ao屬性名,值為undefined

3.將實參值和形參統一

4.在函式體裡面找函式宣告,值賦予函式體

function

fn(a)

console.

log(a)

//123

varb

=function()

console.

log(b)

//function

functiond(

)}fn(

1)//預編譯發生在函式執行前一刻

1.建立oa activationobject

2.oa

3.oa

4.oa,b:

function()

,d:function()

}

在給大家推薦幾個經典的函式練習一下

function test(a,b)

test(1

)

var x =

1, y = z =

0function

add(n)

y =add

(x)function

add(n)

z =add

(x)console.

log(x)

//1console.

log(y)

//4 函式宣告整體提公升 add(n)

console.

log(z)

//4

js的預編譯

預編譯發生在函式執行前一刻 預編譯執行的步驟 1建立執行期上下文,activation object 即ao 2找形參和變數宣告,將形參和變數宣告做為ao的屬性名,尚未賦值,值為 undefined 3將形參和實參相統一,即把實參的值傳到形參裡面去 4在函式體裡面找函式宣告,賦值函式體 functi...

js的預編譯

函式執行前函式究竟做了什麼?一。函式執行前,首先會通篇檢查有沒有語法或者 寫錯的,如果有就直接報錯,如果沒有就會進行下一步 二。函式的預編譯階段 1.首先會在函式內生成乙個ao物件,2.變數或者形參作為函式的屬性名或者鍵名屬性值是undefined 3.實參給形參 4.函式宣告作為屬性值,屬性名為f...

js的預編譯

1.語法分析 通篇掃瞄看有沒有語法錯誤 2.預編譯 3.解釋執行 預編譯有兩種情況 一種是全域性的預編譯 一種是函式的預編譯 函式的預編譯 預編譯 函式執行的前一刻 下面 再預編譯的過程中發生了什麼變化呢 function demo num var num 13 console.log num 13...