为什么 0 和 null 是 true 和 false with equal operator?

Why 0 and null are true and false with equal operator?

我想问一个奇怪的javascript事情。在我看来,所有这些条件都是相互矛盾的 return false:

为什么使用 >= 和 <= 运算符 return 为真? >= 表示 gt,<= 表示 lt。他们不可能是平等的。此外,“null”有一个空值,0 有一个空值,对于逻辑 0 > null 应该 return 为真。谁能给我解释一下这个事实?

当您使用 >< 时,null 将转换为数字 00 > 00 < 0 都是 false(这是基础数学)。当您使用 ===== 时,null 不会被 转换。 0 不等于 null 因此两者都是 false

更一般地说:运算符是为特定的数据类型定义的,如果您传递不同数据类型的值,该值将首先转换为预期的数据类型。 >< 是为 字符串 数字 定义的,但不是为 null 定义的。因此 null 被(最终)转换为数字。

== 有点不同 ===。虽然 == 通常执行类型转换,但如果您与 null 进行比较,它不会执行此操作。就是 .