解释含义vara,bvara(LHSquerya)=1;b(LHSqueryb)=a(RHSquerya)1、RHSquery和简单的找a每个变量的值都一样,而LHSquery是想找到变量的容器本身,这样就可以赋值了一个值。从这个角度看,RHS并不是真正的“赋值运算的右侧”,更准确地说是“非左侧”2、LHS和RHS表示“赋值运算的左侧或右侧”并不一定表示“左侧”或=赋值运算符的右侧”。还有其他几种形式的赋值,所以从概念上最好理解为“谁是赋值的目标(左轴)”和“谁是赋值的源(右轴)”。请注意第1点,LHS和RHS查询都将在当前执行范围内启动。如果有必要(即他们没有找到需要的标识符),他们会继续在上层作用域中寻找目标标识符,这样每次上升到一级作用域(一层),最后到达全局范围(顶级),无论是否找到都会停止。不成功的RHS引用将导致抛出ReferenceError异常。不成功的LHS引用会自动隐式创建一个全局变量(非严格模式下)2.查找只会查找一级标识符,如a、b、c。如果代码中引用了foo.bar.baz,词法作用域查找只会尝试找到foo标识符。找到这个变量后,对象属性访问规则将分别接管对bar和baz属性的访问。3.如果RHS查询找到一个变量,但是你试图对这个变量的值进行不合理的操作,比如试图对一个非函数类型的值进行函数调用,或者引用一个属性null或undefined类型的值,则引擎会抛出另一种类型的异常,称为TypeError。
