作用域
作用域是一套根据变量名查找变量的规则。
遍历嵌套作用域链的规则
引擎从当前的执行作用域开始查找变量,如果没有找到就去上一级查找,当抵达最外层全局作用域时,不管找没找到,查找过程都会停止。
LHS查询和RHS查询
LHS查询:找到变量的容器本身
RHS查询:找到变量的值
在变量未声明时两个查询的区别:
- RHS查询如果在所有嵌套的作用域中都没有找到变量,引擎会抛出Reference异常。
- LHS查询如果查询到全局作用域还没有找到变量,并且是在非严格模式下,会创造一个以该变量名命名的变量返回。
作用域是一套规则,用于确定在何处以及如何查找变量(标识符)。如果查找的目的是对变量进行赋值,那么就会使用LHS查询;如果目的是获取变量的值,就会使用RHS查询。