《你不知道的JS》---作用域是什么(读书笔记一)

作用域

作用域是一套根据变量名查找变量的规则。

遍历嵌套作用域链的规则

引擎从当前的执行作用域开始查找变量,如果没有找到就去上一级查找,当抵达最外层全局作用域时,不管找没找到,查找过程都会停止。

LHS查询和RHS查询

LHS查询:找到变量的容器本身
RHS查询:找到变量的值

在变量未声明时两个查询的区别:

  • RHS查询如果在所有嵌套的作用域中都没有找到变量,引擎会抛出Reference异常。
  • LHS查询如果查询到全局作用域还没有找到变量,并且是在非严格模式下,会创造一个以该变量名命名的变量返回。

作用域是一套规则,用于确定在何处以及如何查找变量(标识符)。如果查找的目的是对变量进行赋值,那么就会使用LHS查询;如果目的是获取变量的值,就会使用RHS查询。

你可能感兴趣的:(笔记,学习感悟)