【JavaScript ECMAScript】Object::Object.is静的メソッドの使い方
Object.is()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Object.is()メソッドは、2つの値が厳密に同じであるかどうかを判定するメソッドです。これはJavaScriptの厳密等価演算子(===)と非常に似ていますが、特定の状況において異なる振る舞いをします。
このメソッドは、JavaScriptの標準仕様であるECMAScriptに基づいて定義されており、Global_Objectsカテゴリに属するObjectクラスの静的メソッドとして提供されています。Object.is()を使用することで、より正確な値の比較が可能となります。
===演算子との主な違いは2点あります。1点目は、浮動小数点数における+0と-0の扱いです。===演算子は+0と-0を等しいと判定しますが、Object.is()メソッドはこれらを異なる値として区別します。2点目は、NaN(Not-a-Number)の扱いです。===演算子を含む通常の比較では、NaNは自分自身とも等しくないと判定されますが、Object.is(NaN, NaN)はtrueを返します。つまり、Object.is()はNaNをそれ自身と等しいものとして扱います。
これらの特性により、Object.is()メソッドは、JavaScriptの内部で定義される特定のアルゴリズムのように、より厳密な値の同一性判定が必要な場面で特に有用です。例えば、+0と-0の区別が重要な数値処理や、NaNが自身と等しいかをチェックしたい場合に活用されます。
構文(syntax)
1Object.is(value1, value2);
引数(parameters)
value1, value2
- value1: 比較する最初の値
- value2: 比較する2番目の値
戻り値(return)
boolean
二つの引数が厳密に同じ値である場合に true を、そうでない場合に false を返します。これは、=== 演算子とは異なり、NaN と NaN の比較や、-0 と +0 の比較において、より直感的な結果を返します。