JS複習 06 函式的作用域和預解析

2021-10-14 15:19:06 字數 1015 閱讀 9396

作用域分兩種:

乙個開啟的頁面是乙個全域性作用域

每乙個函式都是乙個私有作用域

對變數的限制:

var a=b=

20a=

10b=

10console.

log(a)/10

console.

log(b)/10

預解析:

1.var a

**執行:

1.b=

20 變數賦值,當一直到window都沒有b的時候,會把b定義為全域性變數

2.a=b

變數的使用和賦值

使用的是 b

賦值的是 a

3.a=

104.b=

10

var a=b

a=10

b=10

console.

log(a)

/都沒有輸出

console.

log(b)

預解析:

1.var a

**執行:

1.a=b

使用的是 b,沒有定義,直接報錯

賦值的是 a

3.a=

104.b=

10

fn()

var fn=

100functionfn(

)console.

log(fn)

預解析:

1.var fn

2.functionfn(

)**執行:

1.fn()

給全域性的fn賦值為200

2.fn=

100 給全域性的fn賦值為100

3.console.

log(fn) 輸出100

functionfn(

)fun()

}

js 函式 作用域 預解析

一 函式 定義 可以重複呼叫執行的 塊 一 函式的宣告和呼叫 1.宣告函式 1 命名函式 語法 function 函式名 2 函式表示式來宣告函式 匿名函式 語法 var 變數名 function eg var fun function fun 使用變數名來呼叫函式 2.呼叫函式 函式名 二 函式的...

js的預解析和作用域

預解析指的就是,在js檔案或者script裡面的 在正式開始執行之前,進行的一些解析工作。這個工作很簡單,就是在全域性中尋找var關鍵字宣告的變數和通過function關鍵字宣告的函式。1.尋找 var function 引數 等關鍵字,根據var a提前設定為 a 未定義 undefined 所有...

JS中的作用域 作用域鏈和預解析

全部變數 js中除了在函式中定義的變數,都是全域性變數 全域性變數的使用範圍是作用域 作用域 就是變數的使用範圍 js中沒有塊級作用域即一對括號中定義的變數,這個變數可以在大括號外面使用 例如結果是 10並不會報錯,因為變數可以在大括號外面使用 除了函式中定義的變數 下面的這些也都可以輸出,並不會報...