为什么 0 和 null 是真和假,运算符相等



我想问一个奇怪的javascript问题。在我看来,所有这些条件都相互矛盾并返回错误:

  • 0>空
  • 0 <空>
  • 0 == 空
  • 0 === 空
为什么使用>= 和 <=

运算符返回 true?>= 表示 gt,<= 表示 lt。他们不可能是平等的。此外,"null"具有空值,0具有空值,对于逻辑0>null应返回true。有人可以解释我这个事实吗?

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

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

==有点不同===.虽然==通常执行类型转换,但如果与null进行比较,则不会这样做。这就是算法的工作原理。

相关内容

  • 没有找到相关文章

最新更新