在 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/