面試必備 作用域 作用域鏈 預解析

2022-08-17 03:09:21 字數 1530 閱讀 9475

1.變數分為區域性變數和全域性變數,

2.作用域:就是變數的使用範圍;所以,作用域也分為區域性作用域和全域性作用域

3.js中沒有塊級作用域,也就是說:一對大括號{}定義的變數,這個變數可以在大括號外面使用。

栗子1:

栗子2:

栗子3:

4.函式中定義的變數是區域性變數

5.作用域鏈:變數的使用,從裡向外,層層搜尋,搜做到了就可以直接使用了

栗子1:

栗子2:

栗子3:

栗子4:

6.預解析:在瀏覽器解析**之前,把變數的宣告和函式的宣告提前(提公升到該作用於的最上面)

劃重點!!!變數提公升,不提公升賦值;函式提公升,不呼叫函式!函式內部也有預解析執行過程

經典面試題~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第一題:

預解析過程:

functionf1() 

f1();

console.log(c)

console.log(b)

console.log(a)

第二題:

預解析過程:

function f1() 

f1();

console.log(c)

console.log(b)

console.log(a)

第三題:

預解析過程:

var ppx;

functionf1()

console.log(ppx)    //列印上面的ppx函式

ppx="y"          //ppx是乙個變數,值為y,

console.log(ppx)      //列印y
ppx()            //報錯!此時的ppx是變數而不是函式

}ppx="x"

f1();

作用域 預解析

作用域概念預解析規則 作用域 在一定的空間 範圍 區域對內容進行讀寫!瀏覽器 js解析器 1 會去找 var function引數等,a 未定義 所有變數,在正式執行之前 都提前賦了乙個值 未定義 fn1 function fn1 所有的函式,在正式執行 之前,都是整個函式塊 這種叫做js 預解析 ...

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

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

作用域 作用域鏈

理解 就是一塊 地盤 乙個 段所在的區域 它是靜態的 相對於上下文物件 在編寫 時就確定了 分類全域性作用域 函式作用域 沒有塊作用域 es6有了 作用隔離變數,不同作用域下同名變數不會有衝突 區別1全域性作用域之外,每個函式都會建立自己的作用域,作用域在函式定義時就已經確定了。而不是在函式呼叫時 ...