在控制台上,当你输入
blahblah
并按回车键,您会收到 Unrecognized ReferenceError
。
但是……
当您改为输入 this.blahblah
时,您会得到 undefined
(表示没有错误)
这是为什么呢?
blahblah
什么时候在内存中为自己找到一个空间来分配那个特殊值(undefined
)? - 看起来,当我执行 this.blahblah
时,它具有即时执行 var blahblah;
的效果。
有什么意见吗?
最佳答案
在 this.blahblah
的情况下,您指的是 this
对象的属性(窗口
在你的情况下)。
在 JavaScript 中,当您尝试获取一个对象的不存在的属性时,它将返回一个 undefined
类型。
然而,在第一种情况下,简单地调用 blahblah
,您试图调用一个对象,其引用名为 blahblah
。如果不存在,JavaScript 将抛出一个 ReferenceError
。
JavaScript 有很多方法可以告诉您某些东西不存在。
关于javascript - 关于 Javascript 作用域解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821001/