Object.is vs === 質問する

Object.is vs === 質問する

私はこの比較を使用しているコード例を見つけました:

var someVar = 0;
Object.is(false, someVar); //Returns false 

それが私たちが持っている理由false == 0です。true===

Object.isとどう違うのですか===?

ベストアンサー1

===は、JavaScript では厳密な比較演算子と呼ばれます。と の厳密な比較演算子は、とObject.isを除いてまったく同じように動作します。NaN+0/-0

MDNより:

Object.is()メソッドは、演算子に従って等しいことと同じではありません======演算子 (および==演算子も) は、数値 -0 と +0 を等しいものとして扱い、 をNumber.NaNと等しくないものとして扱いますNaN

===以下のコードは、 との違いを強調していますObject.is()

console.log(+0 === -0); //true
console.log(Object.is(+0, -0)); //false

console.log(NaN === NaN); // false
console.log(Object.is(NaN, NaN)); //true

console.log(Number.NaN === Number.NaN); // false
console.log(Object.is(Number.NaN, Number.NaN)); // true

console.log(NaN === Number.NaN); // false
console.log(Object.is(NaN, Number.NaN)); // true

ここに画像の説明を入力してください

さらに多くの例を見ることができますここ

注記:Object.isは ECMAScript 6 提案の一部であり、まだ広くサポートされていません (たとえば、Internet Explorer のどのバージョンでもサポートされていません。また、他のブラウザーの多くの古いバージョンでもサポートされていません)。ただし、上記のリンクにある非 ES6 ブラウザー用のポリフィルを使用できます。

おすすめ記事