【发布时间】:2021-12-31 23:00:10
【问题描述】:
为什么
console.log(new Number("3") === new Number("3"));
返回假?
同样,为什么
console.log(new Number("3") == new Number("3"))
也是假的?
【问题讨论】:
-
因为它们是不同的对象(因为您使用的是
new它正在构造数字对象,而不仅仅是将字符串强制转换为数字)请参阅:Creating Number objects 它直接包含在示例中 -
我明白了 - 所以因为我在比较对象,它不会将对象强制转换为值并返回 true?奇怪的是,在这种情况下,使用 new Number() 创建的对象不会强制...
-
@WanderingDoge 两个操作数具有相同的类型;在这种情况下不会发生强制。
-
所有对象永远不相等,除非存在相同的对象。您创建 2 个数字对象。
new Number(3)与原生类型3不同.. -
这到底有什么意义?比较两个
int值根本不应该使用Number。