【发布时间】:2018-04-11 16:21:19
【问题描述】:
我将以下内容放入浏览器控制台:
0 === {} // false
{} === 0 // SyntaxError: expected expression, got '==='
这是为什么?
【问题讨论】:
-
第一个对象的操作符被调用,第二个被传递给它,可能有原因吗?
标签: javascript
我将以下内容放入浏览器控制台:
0 === {} // false
{} === 0 // SyntaxError: expected expression, got '==='
这是为什么?
【问题讨论】:
标签: javascript
{} === 0 这里{} 是块语句而不是对象字面量。
但如果你说var a = {} === 0 它会起作用
var a = {} === 0
console.log(a);
【讨论】:
{} === {} 是false。为什么会这样?
console.log( {} === 0 );
{} 创建一个新对象,因此 {} === {} 创建两个对象。即使两个不同的对象具有相同的键和值,它们也不相等。 var a = {}; console.log( a === a ); 是 true,因为只创建了一个对象并且您正在将其与自身进行比较。