JavaScript/Object/is
表示
< JavaScript | Object
Object.is()
は、2つの値が同じかどうかを厳密に比較するメソッドです。このメソッドは、===
演算子と似ていますが、NaN
と +0
/-0
の比較において異なる挙動を示します[1]。
構文
[編集]Object.is(value1,value2)
value1
: 比較する最初の値。value2
: 比較する2番目の値。
例
[編集]値の比較を行うプログラム
[編集]以下のプログラムは、Object.is()
を使用して2つの値を比較します。
console.log(Object.is(1,1));// trueconsole.log(Object.is('hello','hello'));// trueconsole.log(Object.is(true,false));// falseconsole.log(Object.is(null,undefined));// false
このプログラムでは、Object.is()
を使用してさまざまな値の比較を行っています。1
と 1
、'hello'
と 'hello'
は同じ値であるため true
が返されますが、true
と false
、null
と undefined
は異なる値であるため false
が返されます。
NaN の比較を行うプログラム
[編集]以下のプログラムは、Object.is()
を使用して NaN
の比較を行います。
console.log(Object.is(NaN,NaN));// trueconsole.log(NaN===NaN);// false
このプログラムでは、Object.is()
を使用して NaN
と NaN
を比較しています。Object.is()
は NaN
を同じ値として扱うため true
が返されますが、===
演算子は NaN
を同じ値として扱わないため false
が返されます。
+0 と -0 の比較を行うプログラム
[編集]以下のプログラムは、Object.is()
を使用して +0
と -0
の比較を行います。
console.log(Object.is(+0,-0));// falseconsole.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()
は、===
演算子と同様に、型と値の両方を厳密に比較します。
脚註
[編集]- ^これは、値の厳密な比較を行うために使用されます。