您的位置:首页 > 其它

作用域之LHS与RHS查询

2017-09-10 18:24 225 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: