作用域之LHS与RHS查询

来源:互联网 发布:python中的不可变类型 编辑:程序博客网 时间:2024/06/08 17:42

LHS和RHS的含义是“赋值操作的左侧或右侧”并不一定意味着就是“=赋值操作符的左侧或右侧”。赋值操作还有其他几种形式,因此在概念上最好将其理解为“赋值操作的目标是谁(LHS)”以及“谁是赋值操作的源头(RHS)”。
如果RHS查询在所有嵌套的作用域中遍寻不到所需的变量,引擎就会抛出ReferenceError异常。如果RHS查询到了一个变量,但是你尝试对这个变量的值进行不合理的操作,比如试图对一个非函数类型的值进行函数调用,或者引用null或undefined类型的值中的属性,那么引擎会抛出TypeError异常。
例:

    function foo(a){        var b=a;        return a+b;        }    var c=foo(2);

1.找出所有的LHS查询(有三处)
c=…;、a=2(隐式变量分配)、b=…
2.找出所有的RHS查询(有四处)
foo(2…、=a、a..、..b

原创粉丝点击