Object.is() は、2つの値が同じかどうかを厳密に比較するメソッドです。このメソッドは、=== 演算子と似ていますが、NaN+0/-0 の比較において異なる挙動を示します[1]

構文

編集
Object.is(value1, value2)
  • value1: 比較する最初の値。
  • value2: 比較する2番目の値。

値の比較を行うプログラム

編集

以下のプログラムは、Object.is() を使用して2つの値を比較します。

console.log(Object.is(1, 1)); // true
console.log(Object.is('hello', 'hello')); // true
console.log(Object.is(true, false)); // false
console.log(Object.is(null, undefined)); // false

このプログラムでは、Object.is() を使用してさまざまな値の比較を行っています。11'hello''hello' は同じ値であるため true が返されますが、truefalsenullundefined は異なる値であるため false が返されます。

NaN の比較を行うプログラム

編集

以下のプログラムは、Object.is() を使用して NaN の比較を行います。

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

このプログラムでは、Object.is() を使用して NaNNaN を比較しています。Object.is()NaN を同じ値として扱うため true が返されますが、=== 演算子は NaN を同じ値として扱わないため false が返されます。

+0 と -0 の比較を行うプログラム

編集

以下のプログラムは、Object.is() を使用して +0-0 の比較を行います。

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

このプログラムでは、Object.is() を使用して +0-0 を比較しています。Object.is()+0-0 を異なる値として扱うため false が返されますが、=== 演算子は +0-0 を同じ値として扱うため true が返されます。

注意点

編集
  • NaN の比較: Object.is() は、NaN を同じ値として扱います。
  • +0 と -0 の比較: Object.is() は、+0-0 を異なる値として扱います。
  • 厳密な比較: Object.is() は、=== 演算子と同様に、型と値の両方を厳密に比較します。

脚註

編集
  1. ^ これは、値の厳密な比較を行うために使用されます。

外部リンク

編集