Scope
variable, function, class
- scope有大小区分,外部变量可以在外部及内部访问,内部变量只能在内部访问
- 变量的scope从声明以后开始
- 内部可以声明同名变量,会覆盖外部
```javascript
/**
- Scope.js
- 测试JavaScript的作用域 */ let a = 5; let b = 6; console.log(“1: “, a, b);
if (a > 0) { a = 4; let b = 3; console.log(“2: “, a, b); } else { let b = 4; console.log(“3: “, a, b); }
console.log(“4: “, a, b);
<a name="hKbIY"></a>## Extent> 变量可以访问的时间段,从分配内存给它,到收回它的内存之间的时间<a name="xfK1O"></a>### 栈变量的生存期跟作用域一致,出了作用域,生存期结束,变量所占用的内存也被释放<a name="lO2jw"></a>### 堆变量的生存期跟语法上的作用域不一致,退出作用域以后仍然会存在<a name="ONk7v"></a>### 实现作用域```javascriptBlockScope scope = (BlockScope) cr.node2Scope.get(ctx); //获得ScopeStackFrame frame = new StackFrame(scope); //创建一个栈桢pushStack(frame); //加入栈中...//运行完毕,弹出栈stack.pop();
