第一章 作用域是什么
程序中的源代码在执行前经过三个步骤 统称为 编译
- 词法分析
将字符串分解为词法单元 - 语法分析
将词法单元流转换成一个抽象语法树 - 代码生成
将抽象语法树转换成可执行代码
当变量出现在复制操作的左侧时进行LHS查询 出现在非左侧时进行RHS查询
引擎从当前的执行作用域开始查找变量 如果找不到 就向上一级继续查找 当抵达最外层的作用域时 无论找没找到 都停止查找过程
RHS 查询在所有嵌套的作用域中遍寻不到所需的变量 引擎会抛出ReferenceError异常 LHS查询如果在全局作用域也无法找到目标变量 就会再全局作用域中创建一个具有该名称的变量 并返回给引擎(非严格模式)