javascript - 关于 Javascript 作用域解析

标签 javascript scope this

在控制台上,当你输入

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/

相关文章:

c++ - 为什么 'this' 关键字不是 C++ 中的引用类型

java - 需要帮助在 For 循环之外访问 AudioInputStream

javascript - 使用动态生成的对象数组填充 ember-power-select 时,无法将对象转换为 Array.toString( native )的原始值

javascript - 在鼠标悬停时触发 'further information' div(有重叠)

javascript - NodeJS 脚本 - npm 在 exec() 上不显示当前安装的版本

c++ - 范围界定错误并且不能有 cv 限定符?

javascript - JS : Default function parameter values and scope

Javascript:Promises + this

javascript - 我可以在 jQuery 中的 "this"之后添加更多吗?

javascript - 从多个 javascript 文件加载多个函数