为什么0和null是真和假的相同运算符?

时间:2016-05-27 19:53:57

标签: javascript null conditional

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

  • 0>空
  • 0<空
  • 0 == null
  • 0 === null

为什么使用> =和< =运算符返回true? > =表示gt和< =表示lt。他们不能平等。此外,“null”具有空值,0具有空值,并且对于逻辑0> null应该返回true。有人可以解释一下这个事实吗?

1 个答案:

答案 0 :(得分:1)

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

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

==有点不同===。虽然==通常会执行类型转换,但如果您与null进行比较,则不会执行此操作。这只是how the algorithm works