Skip to content

比较运算符

大小比较:> < >= <= 相等比较:== != === !==

比较运算符的返回类型:boolean

算术运算符的优先级高于比较运算符

大小比较

细节

  1. 两个字符串比较大小,比较的是字符串的字符编码。

  2. 如果一个不是字符串,并且两个都是原始类型,将它们都转换为数字进行比较

'1' -> 1 '' -> 0 ' ' -> 0 ' a' -> NaN '3.14' -> 3.14

NaN与任何数字比较,得到的结果都是false

Infinity比任何数字都大

-Infinity比任何数字都小

  1. 如果其中一个是对象,将对象转换为原始类型然后,按照规则1或规则2进行比较

目前,对象转换为原始类型后,是字符串 "[object Object]"

相等比较

== 和 != (相等比较 和 不相等比较)

==: 比较两个数据是否相等 !=: 比较两个数据是否不相等

细节

  1. 两端的类型相同,直接比较两个数据本身是否相同(两个对象比较的地址)

  2. 两端的类型不同

1). null 和 undefined, 它们之间相等, 和其他原始类型比较, 则不相等。 2). 其他原始类型,比较时先转换为数字,再进行比较 3). NaN与任何数字比较,都是false,包括自身 4). Infinity和-Infinity,自能和自身相等 5). 对象比较时,要先转换为原始类型后,再进行比较

由于相等和不相等比较,对于不同类型的数据比较违反直觉,因此,通常我们不适用这种比较方式,而是使用更加接近直觉的严格相等和严格不相等比较

=== 和 !== (严格相等 和 严格不相等)

=== : 两端的数据和类型必须相同 !== : 两端的数据或类型不相同

  1. 两端类型相同,规则和相等比较一致。
  2. 两端类型不同,为false。

数字规则:

1). NaN与任何数字比较,都是false,包括自身 2). Infinity和-Infinity,自能和自身相等