靜態作用域

2022-04-02 10:47:41 字數 787 閱讀 8687

詞法作用域其實是指作用域在詞法解析階段既確定了,不會改變

基本型別

var foo = 1;

function

sta() 

(function () )();

// 列印出1 而不是 2

// 因為sta的scope在建立時,記錄的foo是1。如果js是動態作用域,那麼他應該彈出2

var foo = 1;

function

sta() 

(function () )();

// 列印出2, 記錄得foo依舊是全域性變數, 只不過在其執行時, 已經變為2了

var foo = 1;

function

sta() 

(function () )();

// 列印出1, foo改變發生在函式執行之後

引用型別

var obj = ;

function

sta() 

(function () ;

sta();

})();

// 列印出1

var obj = ;

function

sta() 

(function () )();

// 列印出2

深入作用域之靜態作用域與動態作用域

概念 靜態作用域指的是一段 在它執行之前就已經確定了它的作用域,簡單來說就是在執行之前就確定了它可以應用哪些地方的作用域 變數 動態作用域在 執行的時候才確定它的作用域的,以及作用域鏈。靜態作用域 var a 10 function fn fn 11 在建立函式fn的時候就已經確定了它可以作用那些變...

程式語言的靜態作用域和動態作用域

首先我們看一段程式 include stdio.h intx 5 usr bin perl subf subg x,y,z top top top f print at top after f x x,y y,z z 程式的輸出結果 in f after g x f,y g,z g at top a...

作用域 作用域鏈

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