我正在写剧本,我有类似的东西
var myObject = {};
if (myObject == {}){
...
}
Run Code Online (Sandbox Code Playgroud)
我惊讶地发现这被评估为假.
阅读javascript所做的一些有趣的问题,我发现这篇文章,它告诉我们{}会在if语句中产生一个"truthy"对象,例如
if ({}){ // true
...
}
Run Code Online (Sandbox Code Playgroud)
嗯,进一步准备好讨论String Equality,对于对象比较,如果它们引用相同的对象,它将返回true .(甚至{} === {}返回false)
我能想到的唯一原因是返回false是因为对象在技术上处于不同的内存地址,因此被认为是不同的对象.
nic*_*ael 10
因为每个人{}创造一个独特的对象 你不能那样比较它们.