javascript - 何时(以及为什么)在 JavaScript 控制台中未定义 {}?

标签 javascript console

在 FF 和 Chrome 的控制台中,{} 被认为是未定义的,直到明确评估:

{};     // undefined
({});   // ▶ Object

实际上,它的定义比未定义要少一些——这显然是错误的语法:

{} === undefined;  // SyntaxError: Unexpected token ===
{}.constructor;    // SyntaxError: Unexpected token .

但如果它在另一边就不行,在这种情况下没问题:

"[object Object]" == {}.toString(); // true

或者如果它不是第一个表达式:

undefined + undefined; // NaN
{} + undefined;        // NaN
undefined + {};        // "undefined[object Object]"

什么给了?

最佳答案

如果单独使用大括号,它就不是对象字面量,而是代码块。由于代码块不包含任何代码,因此对其求值会导致 undefined

关于javascript - 何时(以及为什么)在 JavaScript 控制台中未定义 {}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934412/

相关文章:

java - Eclipse Juno 中没有控制台输出

Linux 控制台应用程序开发

c - Visual Studio : Different Size in Memory for same executable in XP and Windows7

javascript - p5.j​​s:为上传的图片添加过滤器

javascript - 带有换行转义字符的字符串会破坏 Javascript 脚本

javascript - 使用 JWPlayer 将文件转换为 JSON

ios - 如何使用 os_log 在控制台应用程序中查看 iOS 设备日志

javascript - 将数据从 POST 路由传递到模板

javascript - var.replace 不是函数

python - 如何在python中设置控制台的背景颜色?