###### tags: `JavaScript - 執行環境、作用域` # 範圍鍊 (Scope Chain) JavaScript是屬於語法作用域 (lexical scope),所以範圍鍊的決定是依照作用域來尋找,跟執行環境與執行堆疊沒有關係。 如果是動態作用域,尋找方式就會依照調用時才決定尋找,也就會變成跟執行環境與執行堆疊有關系。 ```javascript= var d = 'd'; function funcA() { var a = 'a'; function funcB() { console.log(a); function funcC() { console.log(d); }; funcC(); }; funcB(); }; funcA(); ``` ```javascript= var d = 'd'; var a = 'aa'; function funcA() { var a = 'a'; funcB(); }; function funcB() { console.log(a); // aa function funcC() { var d = 'dd'; console.log(d); // dd }; funcC(); }; funcA(); ```