ES6 Object.is()

ES5比較兩個值是否相等, 只有兩個運算符: 相等運算符( == ) 和嚴格相等運算符( === ) 。 它們都有缺點, 前者會自動
轉換數據類型, 後者的 NaN 不等於自身, 以及 +0 等於 -0 。 JavaScript缺乏一種運算, 在所有環境中, 只要兩個值是一樣
的, 它們就應該相等。

ES6提出 "Same-value equality"(同值相等) 算法.用來解決這個問題,Object.is 就是部署這個算法的新方法。 它用來比較兩
個值是否嚴格相等, 與嚴格比較運算符(===) 的行爲基本一致。

> Object.is('foo', 'foo')
true
> Object.is({}, {})
false

不同之處只有兩個: 一個是 +0 不等於 -0 , 二是 NaN 等於自身.

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章