###### 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();
```