ES5中引入了"严格模式".同正常模式,或者说宽松/懒惰模式相比,严格模式在行为上有很多不同.其中一个不同的行为是严格模式禁止自动或隐式地创建全局变量.因此,在严格模式中LHS(左查找)查询失败时,并不会创建返回一个全局变量,引起会抛出同RHS查询失败时类似的ReferenceError异常.
接下来,如果RHS查询找到了一个变量,但是你尝试对这个变量的值进行不合理的操作,比如试图对一个非函数类型的值进行函数调用,或者引用null或者undefined类型的值中的属性,那么引擎会抛出另外一个类型的异常,叫做TypeError.
ReferenceError同作用域判别失败相关,而TyperError则代表作用域判别成功了,但是对结果的操作时非法或不合理的.
reference 英 ['ref(ə)r(ə)ns] 美 ['rɛfrəns]
n. 参考,参照;涉及,提及;参考书目;介绍信;证明书
vi. 引用
vt. 引用
网友评论