我正在编写一个脚本,我有类似
的东西var myObject = {};
if (myObject == {}){
...
}
我很惊讶地发现这被评估为假。
阅读javascript所做的一些有趣的问号,我发现this article,它告诉我{}
会产生一个" truthy" if语句中的对象,例如
if ({}){ // true
...
}
嗯,进一步准备好的讨论字符串平等,对于对象比较,如果它们引用相同的对象,它将返回true。 (即使{} === {}
返回false)
我能想到的唯一原因是返回false是因为对象在技术上处于不同的内存地址,因此被认为是不同的对象。
答案 0 :(得分:10)
因为每个{}
都会创建一个唯一的对象。你不能用那种方式比较它们。