js世界中的四种相等

2019-04-02  本文已影响0人  红叶1942

js中有四种元语相等,分别为==,===, sameValue, sameValueZero,下面分别介绍一下其异同点,在这些异同点中,关于+0,-0,NaN的判断引出了很多的设定。

==

该相等,在a,b执行比较前,会进行类型的转换,再进行比较,详情见==背后的故事

===

该严格相等,不会进行类型转换,而是直接进行比较,这里需要注意的是

+0 === -0 // true
NaN === NaN // false

sameValue

其执行算法和 === 基本相同,主要区别在于0和NaN,在该算法策略中,+0和-0不等,NaN等于NaN,js透出了一个api是Object.is,其表现如下:

Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

sameValueZero

其执行算法也和===雷同,仍然是在0和NaN上有区别,但是js并没有透出api,目前在js的一些api上有体现

上一篇下一篇

猜你喜欢

热点阅读