合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## 作用域 - 变量和函数的查找范围 * 是变量的一种查找规则 * **作用域在函数定义时就已经确定了。而不是在函数调用时** * 对变量进行赋值时, 使用 LHS 查询 * 获取变量值是 RHS 查询 ``` var a = 2 // 作用域进行查找的时候,对 a 进行 LHS 的查询 console.log(a) // 作用域进行查找的时候,对 a 进行 RHS 的查询 ``` ## 作用域链 - 由内到外逐级查找并且不可逆 ## 编译 引擎执行代码之前,需要有编译器对代码进行编译 ``` var a = 2 1. var a 在作用域中声明新变量 2. a = 2, 执行 LHS 查询,查询变量a,进行赋值操作 ``` ## LHS 和 RHS 的区别 * LHS 在进行变量赋值时,在非严格模式下,找不到 c 变量时,会隐式创建变量c ![](https://img.kancloud.cn/0a/df/0adf58453c3b3b5e699ac79d4a1e2339_1026x433.png) * RHS 在获取变量 b 时,如果找不到,会抛出异常 ReferenceError ![](https://img.kancloud.cn/1f/59/1f5905d0af61862b855c2796efde3762_1046x451.png)