我正在做一个关于难以理解的 JavaScript 代码的讲座,当然 JavaScript 的弱点是知道 == / === 会返回什么。我在堆栈中找到了这个很好的答案,它很好地涵盖了这个主题 - JavaScript 比较中应该使用哪个等于运算符(== vs ===)?
引起我注意的一件事(可能是因为我直到现在才意识到)是您可以使用字符串对象而不是原语,并且您会在您的条件下得到不同的结果 -
"abc" == new String("abc") // true
"abc" === new String("abc") // false
我想对其进行测试,并使用字符串对象发现了一些不太直观的结果-
new String("abc") === new String("abc") // false
乃至
new String("abc") == new String("abc") // false
一开始我认为这是一个浏览器错误,但我在 chrome 和 Firefox 上都对其进行了测试。因此,如果有人可以分享更多信息,我会非常高兴,如何比较文字字符串和字符串对象是真实的,但比较两个“相等”的字符串对象是虚假的