Object.is()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´9æ.
Object.is() ã¯éçã¡ã½ããã§ã 2 ã¤ã®å¤ãåä¸å¤ã§ãããã©ãããå¤å®ãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(Object.is("1", 1));
// äºæ³ãããçµæ: false
console.log(Object.is(NaN, NaN));
// äºæ³ãããçµæ: true
console.log(Object.is(-0, 0));
// äºæ³ãããçµæ: false
const obj = {};
console.log(Object.is(obj, {}));
// äºæ³ãããçµæ: false
æ§æ
Object.is(value1, value2)
弿°
è¿å¤
è«çå¤ã§ã 2 ã¤ã®å¼æ°ãåä¸å¤ã§ãããã©ããã表ãã¾ãã
解説
Object.is() 㯠2 ã¤ã®å¤ãåä¸å¤ã§ãããã©ãããå¤å®ãã¾ãã2 ã¤ã®å¤ã以ä¸ã®è¦åã®ä¸ã¤ã«å½ã¦ã¯ã¾ãå ´åã«åä¸ã¨ãªãã¾ãã
- ã©ã¡ãã
undefined - ã©ã¡ãã
null - ã©ã¡ãã
trueãã©ã¡ããfalse - ã©ã¡ããåãæå群ãåãé ã§ä¸¦ã¶åãé·ãã®æåå
- ã©ã¡ããåããªãã¸ã§ã¯ãï¼ããªãã¡ä¸¡æ¹ã®å¤ãã¡ã¢ãªã¼å ã®åããªãã¸ã§ã¯ããåç §ï¼
- ã©ã¡ããåãæ°å¤ã®é·æ´æ°
- ã©ã¡ããåãã·ã³ãã«å¤ã®ã·ã³ãã«
- ã©ã¡ããæ°ã§ã
Object.is() 㯠== æ¼ç®åã¨ç価ã§ã¯ããã¾ããã== æ¼ç®åã¯çä¾¡æ§æ¯è¼ã®åã«ï¼åãåã§ãªããã°ï¼ä¸¡è¾ºã«å¯¾ãã¦æ§ã
ãªå夿ãé©ç¨ãã¾ãï¼çµæãä¾ãã° "" == false 㯠true ã¨è©ä¾¡ããã¾ãï¼ããObject.is() ã¯ä¸¡è¾ºã©ã¡ãã®å¤ã«ãå夿ãè¡ãã¾ããã
ã¾ããObject.is() 㯠=== æ¼ç®åã¨ãåãã§ãããã¾ãããObject.is() 㨠=== ã®å¯ä¸ã®éãã¯ã符å·ä»ãã®ã¼ã㨠NaN ã®æ±ã§ãã=== æ¼ç®åã¯ï¼ãã㦠== æ¼ç®åãï¼æ°å¤ -0 㨠+0 ã¯åããã®ã¨ãã¦æ±ã䏿¹ãNaN ã¯ç°ãªããã®ã¨ãã¦æ±ãã¾ãã
ä¾
>Object.is() ã®ä½¿ç¨
// ã±ã¼ã¹ 1: === ãç¨ããã®ã¨åãçµæã«ãªãè©ä¾¡å¼
Object.is(25, 25); // true
Object.is("foo", "foo"); // true
Object.is("foo", "bar"); // false
Object.is(null, null); // true
Object.is(undefined, undefined); // true
Object.is(window, window); // true
Object.is([], []); // false
const foo = { a: 1 };
const bar = { a: 1 };
const sameFoo = foo;
Object.is(foo, foo); // true
Object.is(foo, bar); // false
Object.is(foo, sameFoo); // true
// ã±ã¼ã¹ 2: 符å·ä»ãã®ã¼ã
Object.is(0, -0); // false
Object.is(+0, -0); // false
Object.is(-0, -0); // true
// ã±ã¼ã¹ 3: NaN
Object.is(NaN, 0 / 0); // true
Object.is(NaN, Number.NaN); // true
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.is> |