js 笔记-LHS RHS 作用域

作用域是一套规则,用于在何处和如何查找变量,如果查找的目的是对变量进行赋值。那么将会使用左查询(LHS);如果目的是查询变量的值,则会使用右查询(RHS);

赋值操作符会导致使用LHS查询,=号和调用函数传参都会发生关联作用域的赋值操作;
js引擎会在代码执行前进行编译,在这个过程中  像 var a = 2这样的声明会被分为两块独立的步骤:
	1、首先 var a 会在其作用域中声明新变量,这会在代码执行前进行,(变量提升);
	2、接着 a = 2 会查询变量a并对其赋值(LHS) ;

LHS和RHS都会在当前执行的作用域中开始,当在当前作用域中找不到时,就会向上级作用域中寻找,直到顶级作用域中,然后停止。不成功的RHS会抛出错误ReferenceError,不成功的LHS会为该变量创建一个全局变量(非严格模式下),严格模式也会抛出ReferenceError

你可能感兴趣的:(js,笔记,学习,javascript,前端,开发语言)