JavaScript比较运算符


比较运算符

大小比较:> < >= <=
相等比较:
== 相等
!= 不相等
=== 严格相等
!== 严格不相等

比较运算符的返回类型: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。

文章作者: overwhat
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 overwhat !
评论
  目录