为什么{} == {}会返回false?

时间:2014-07-01 18:45:55

标签: javascript

我正在编写一个脚本,我有类似

的东西
var myObject = {};

if (myObject == {}){
    ...
}

我很惊讶地发现这被评估为假。

我自己的发现

阅读javascript所做的一些有趣的问号,我发现this article,它告诉我{}会产生一个" truthy" if语句中的对象,例如

if ({}){ // true
    ...
}

嗯,进一步准备好的讨论字符串平等,对于对象比较,如果它们引用相同的对象,它将返回true。 (即使{} === {}返回false)

我能想到的唯一原因是返回false是因为对象在技术上处于不同的内存地址,因此被认为是不同的对象。

1 个答案:

答案 0 :(得分:10)

因为每个{}都会创建一个唯一的对象。你不能用那种方式比较它们。