ç価æ¼ç®å (==)
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
ç価æ¼ç®å (==) ã¯ã 2 ã¤ã®ãªãã©ã³ããçãããã¨ãæ¤æ»ããè«çå¤ã§çµæãè¿ãã¾ãã
å³å¯ç価æ¼ç®åã¨ã¯ç°ãªãããªãã©ã³ãã®åãç°ãªãå ´åã«ã¯åã®å¤æã試ã¿ã¦ããæ¯è¼ãè¡ãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(1 == 1);
// äºæ³ãããçµæ: true
console.log("hello" == "hello");
// äºæ³ãããçµæ: true
console.log("1" == 1);
// äºæ³ãããçµæ: true
console.log(0 == false);
// äºæ³ãããçµæ: true
æ§æ
x == y
解説
ç価æ¼ç®å (== ããã³ !=) ã¯ãIsLooselyEqual ã®æå³ãæä¾ãã¾ããããã¯ããããæ¬¡ã®ããã«ã¾ã¨ãããã¨ãã§ãã¾ãã
- ãªãã©ã³ããåãåã§ããå ´åã以ä¸ã®ããã«æ¯è¼ããã¾ãã
- ãªãã¸ã§ã¯ã: 両æ¹ã®ãªãã©ã³ããåããªãã¸ã§ã¯ããåç
§ãã¦ããå ´åã«éã
trueãè¿ãã¾ãã - æåå: 両æ¹ã®ãªãã©ã³ãã«åãæåãåãé çªã§å
¥ã£ã¦ããå ´åã®ã¿
trueãè¿ãã¾ãã - æ°å¤: 両æ¹ã®ãªãã©ã³ããåãå¤ã§ããå ´åã®ã¿
trueãè¿ãã¾ãã+0ã¨-0ã¯åãå¤ã¨ãã¦æ±ããã¾ããã©ã¡ããã®ãªãã©ã³ããNaNã§ããå ´åã¯falseãè¿ãã¾ããå¾ã£ã¦ãNaNã¯NaNã¨ã¯çãããªãã¾ããã - è«çå¤: 両æ¹ã
trueã¾ãã¯ä¸¡æ¹ãfalseã®å ´åã®ã¿trueãè¿ãã¾ãã - é·æ´æ°: 両æ¹ã®ãªãã©ã³ããåãå¤ã§ããå ´åã®ã¿
trueãè¿ãã¾ãã - ã·ã³ãã«: 両æ¹ã®ãªãã©ã³ããåãã·ã³ãã«ãåç
§ãã¦ããå ´åã®ã¿
trueãè¿ãã¾ãã
- ãªãã¸ã§ã¯ã: 両æ¹ã®ãªãã©ã³ããåããªãã¸ã§ã¯ããåç
§ãã¦ããå ´åã«éã
- ãªãã©ã³ãã®ä¸æ¹ã
nullã¾ãã¯undefinedã§ããå ´åããã䏿¹ãnullã¾ãã¯undefinedã§ããã°trueãè¿ãã¾ãããã以å¤ã®å ´åã¯falseãè¿ãã¾ãã - ãªãã©ã³ãã®ä¸æ¹ããªãã¸ã§ã¯ãã§ããã䏿¹ãããªããã£ãã§ããå ´åããªãã¸ã§ã¯ããããªããã£ãã«å¤æãã¾ãã
- ãã®æ®µéã§ã両æ¹ã®ãªãã©ã³ãã¯ããªããã£ãï¼æååãæ°å¤ãè«çå¤ãã·ã³ãã«ãé·æ´æ°ã®ããããï¼ã«å¤æããã¾ããæ®ãã®å¤æã¯ãã±ã¼ã¹ãã¤ã±ã¼ã¹ã§è¡ããã¾ãã
- 両æ¹ãåãåã§ããã°ãæé 1 ã使ç¨ãã¦æ¯è¼ãã¾ãã
- 䏿¹ã®ãªãã©ã³ããã·ã³ãã«ã§ããã䏿¹ãããã§ãªãå ´åã¯ã
falseãè¿ãã¾ãã - 䏿¹ã®ãªãã©ã³ããè«çåã§ããã䏿¹ãããã§ãªãå ´åã¯ãè«çå¤ããæ°å¤ã¸ã®å¤æãè¡ããã¾ãã
true㯠1 ã«å¤æãããfalse㯠0 ã«å¤æããã¾ãããããã 2 ã¤ã®ãªãã©ã³ããç·©ãç価æ§ã§æ¯è¼ãã¾ãã - æ°å¤ããæååã¸: æååããæ°å¤ã¸å¤æãã¾ãã夿ã«å¤±æããã¨
NaNã¨ãªããç価æ§ãfalseã¨ãªããã¨ãä¿è¨¼ããã¦ãã¾ãã - æ°å¤ããé·æ´æ°ã¸: æ°å¦çãªå¤ã§æ¯è¼ãã¾ããæ°å¤ã ±Infinity ã¾ãã¯
NaNã§ããã°ãfalseãè¿ãã¾ãã - æååããé·æ´æ°ã¸: æååã
BigInt()ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨åãã¢ã«ã´ãªãºã ã使ç¨ãã¦é·æ´æ°ã¸ã¨å¤æãã¾ãã夿ã«å¤±æããå ´åã¯ãfalseãè¿ãã¾ãã
ç·©ãç価æ§ã¯å¯¾ç§°çã§ãã A == B ã¯ãA 㨠B ããããªãå¤ã§ãã£ã¦ãï¼å¤æã®é©ç¨é åºãé¤ãã¦ï¼ã常㫠B == A ã¨åä¸ã®æå³ãæã¡ã¾ãã
å³å¯ãªçä¾¡æ§æ¼ç®åï¼===ï¼ã¨ã®æãé¡èãªéãã¯ãå³å¯ç価æ¼ç®åãå夿ãä¸å試ã¿ãªãç¹ã§ãã代ããã«ãå³å¯ç価æ¼ç®åã¯ãªãã©ã³ãã®åãç°ãªãã¨ã常ã«ç°ãªããã®ã¨è¦ãªãã¾ããå³å¯ç価æ¼ç®åã¯åºæ¬çã«æ®µé 1 ã®ã¿ãå®è¡ãããã以å¤ã®å ´åã¯ãã¹ã¦ false ãè¿ãã¾ãã
ä¸è¨ã®ã¢ã«ã´ãªãºã ã«ã¯ãæå³çãªéåããããã¾ãããªãã©ã³ãã®ä¸æ¹ã document.all ã®å ´åã undefined ã¨ãã¦æ±ããã¾ããã¤ã¾ãã document.all == null 㯠true ã§ããã document.all === undefined && document.all === null 㯠false ã¨ãªãã¾ãã
ä¾
>å夿ããªãå ´åã®æ¯è¼
1 == 1; // true
"hello" == "hello"; // true
å夿ãããå ´åã®æ¯è¼
"1" == 1; // true
1 == "1"; // true
0 == false; // true
0 == null; // false
0 == undefined; // false
0 == !!null; // true (è«ç NOT æ¼ç®åãåç
§)
0 == !!undefined; // true (è«ç NOT æ¼ç®åãåç
§)
null == undefined; // true
const number1 = new Number(3);
const number2 = new Number(3);
number1 == 3; // true
number1 == number2; // false
ãªãã¸ã§ã¯ãã®æ¯è¼
const object1 = {
key: "value",
};
const object2 = {
key: "value",
};
console.log(object1 == object2); // false
console.log(object1 == object1); // true
æåå㨠String ãªãã¸ã§ã¯ãã®æ¯è¼
new String() ã使ç¨ãã¦æ§ç¯ãããæååã¯ãªãã¸ã§ã¯ãã§ãããã¨ã«æ³¨æãã¦ãã ãããæååãªãã©ã«ã¨ã®æ¯è¼ãè¡ãã¨ã String ãªãã¸ã§ã¯ãã¯æååãªãã©ã«ã«å¤æããããã®ä¸èº«ãæ¯è¼ããã¾ãããã ãã両æ¹ã®ãªãã©ã³ãã String ãªãã¸ã§ã¯ãã§ãã£ãå ´åã¯ããªãã¸ã§ã¯ãã¨ãã¦æ¯è¼ãããåããªãã¸ã§ã¯ããåç
§ãã¦ããå ´åã ãæ¯è¼ã«æåãã¾ãã
const string1 = "hello";
const string2 = String("hello");
const string3 = new String("hello");
const string4 = new String("hello");
console.log(string1 == string2); // true
console.log(string1 == string3); // true
console.log(string2 == string3); // true
console.log(string3 == string4); // false
console.log(string4 == string4); // true
Date ã¨æååã®æ¯è¼
const d = new Date("1995-12-17T03:24:00");
const s = d.toString(); // for example: "Sun Dec 17 1995 03:24:00 GMT-0800 (Pacific Standard Time)"
console.log(d == s); // true
é åã¨æååã®æ¯è¼
const a = [1, 2, 3];
const b = "1,2,3";
a == b; // trueã `a` ãæååã«å¤æ
const c = [true, 0.5, "hey"];
const d = c.toString(); // "true,0.5,hey"
c == d; // true
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-equality-operators > |