1.作用域:
域:空間、範圍、區域…
作用:讀、寫
script 全域性變數,全域性函式
自上而下
函式由里到外
2.js解析:
⑴ 「找一些東西」:var、 function、 引數……
a = 未定義
所有的變數,在正式執行**之前,都提前賦予了乙個值:未定義。
fn1 = function fn()
所有的函式,在正式執行**之前,都是整個函式塊。
這一過程叫做 :「js的預解析」
遇到重名的變數和函式,就只留下函式
⑵ 逐行解讀**:
表示式:=、 +、 -、 *、 /、 %、 ++、 --、 !、引數……
表示式可以修改預解析的值!
函式呼叫:
a) js預解析
子級作用域返回父級作用域稱為作用域鏈。
b) 逐行解析
ps:對於全域性變數,盡量不要在 if 或者 for 迴圈語句裡面定義,因為火狐無法進行預解析。
js變數作用域(解析機制)
作用域 全域性作用域 區域性作用域 函式作用域 var name xm function fn argument console.log fn console.log 這裡會發生報錯 變數是未定義的 全域性變數可以在區域性作用域中訪問到,區域性變數 在全域性作用域中訪問不到。在js中沒有塊級作用域 ...
JS作用域及域解析規則
1 js作用域 變數和函式作用的範圍。2 js解析器可以分為域解析和逐行解讀 兩個過程。域解析 1 當進行域解析的時候,一旦找到var,就會提取後面的變數名,並給它賦值給undefined。2 一旦找到function和形參,把整個函式塊賦值給函式名,把形參賦值為undefined 逐行解讀 解讀表...
JS學習之作用域與解析機制習題總結
作用域問題一 1 console.log a undefined var a 1 2 console.log a 報錯a 1 宣告的是全域性變數,但預解析只解析var宣告的變數 2.作用域問題二 console.log a a var a 1 console.log a 1 functiona co...