==与===的区别

==比较值是否相等,内部会进行强制类型转换

===比较值之前,会比较数据类型是否相等

若两个数值之间==结果为false,则===必为false. 

x

y

==

===

undefined

undefined

true

true

null

null

true

true

true

true

true

true

false

false

true

true

"foo"

"foo"

true

true

Symbol()

Symbol()

false

false

0

0

true

true

+0

-0

true

true

0

false

true

false

""

false

true

false

""

0

true

false

"0"

0

true

false

"17"

17

true

false

[1,2]

"1,2"

true

false

new String("foo")

"foo"

true

false

null

undefined

true

false

null

false

false

false

undefined

false

false

false

{ foo: "bar" }

{ foo: "bar" }

false

false

new String("foo")

new String("foo")

false

false

0

null

false

false

0

NaN

false

false

"foo"

NaN

false

false

原文地址:https://www.cnblogs.com/fan-jing/p/7424433.html