==
用于一般比较,===
用于严格比较,==
在比较的时候可以转换数据类型,===
严格比较,只要类型不匹配就返回flase
。
先来看看 ==
这兄弟:
强制是将值转换为另一种类型的过程。在这种情况下,==
会执行隐式强制。在比较两个值之前,==
需要执行一些规则。
假设我们要比较x == y
的值。
-
如果
x
和y
的类型相同,则 JS 会换成===
操作符进行比较。 -
如果
x
为null
,y
为undefined
,则返回true
。 -
如果
x
为undefined
且y
为null
,则返回true
。 -
如果
x
的类型是number
,y
的类型是string
,那么返回x == toNumber(y)
。 -
如果
x
的类型是