作用域的两种主要工作模型
- 词法作用域(本文讨论重点)
- 动态作用域(后面接着讨论)
词法化的过程
词法化的过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义,这个概念是理解词法作用域及其名称来历的基础。
词法作用域的理解
词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变(大部分情况下是这样的)。
作用域气泡
作用域气泡由其对应的作用域块代码写在哪里决定,它们是逐级包含的。
function foo (a){
var b = a *2;
function bar