ä¸¥æ ¼ç¸çï¼===ï¼
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
ä¸¥æ ¼ç¸çè¿ç®ç¬¦ï¼===ï¼ä¼æ£æ¥å®ç两个æä½æ°æ¯å¦ç¸çï¼å¹¶ä¸è¿åä¸ä¸ªå¸å°å¼ç»æãä¸ç¸çè¿ç®ç¬¦ä¸åï¼ä¸¥æ ¼ç¸çè¿ç®ç¬¦æ»æ¯è®¤ä¸ºä¸åç±»åçæä½æ°æ¯ä¸åçã
å°è¯ä¸ä¸
console.log(1 === 1);
// Expected output: true
console.log("hello" === "hello");
// Expected output: true
console.log("1" === 1);
// Expected output: false
console.log(0 === false);
// Expected output: false
è¯æ³
js
x === y
æè¿°
ä¸¥æ ¼ç¸çè¿ç®ç¬¦ï¼=== å !==ï¼æä¾äºä¸¥æ ¼ç¸çå¤å®è¯ä¹ã
- 妿æä½æ°çç±»åä¸åï¼åè¿å
falseã - å¦æä¸¤ä¸ªæä½æ°é½æ¯å¯¹è±¡ï¼åªæå½å®ä»¬æååä¸ä¸ªå¯¹è±¡æ¶æè¿å
trueã - å¦æä¸¤ä¸ªæä½æ°é½ä¸º
nullï¼æè 两个æä½æ°é½ä¸ºundefinedï¼è¿åtrueã - å¦æä¸¤ä¸ªæä½æ°æä»»æä¸ä¸ªä¸º
NaNï¼è¿åfalseã - å¦åï¼æ¯è¾ä¸¤ä¸ªæä½æ°çå¼ï¼
- æ°åç±»åå¿
é¡»æ¥æç¸åçæ°å¼ã
+0å-0ä¼è¢«è®¤ä¸ºæ¯ç¸åçå¼ã - å符串类åå¿ é¡»æ¥æç¸å顺åºçç¸åå符ã
- å¸å°è¿ç®ç¬¦å¿
é¡»åæ¶ä¸º
trueæåæ¶ä¸ºfalseã
- æ°åç±»åå¿
é¡»æ¥æç¸åçæ°å¼ã
ä¸¥æ ¼ç¸çè¿ç®ç¬¦ä¸ç¸çï¼==ï¼è¿ç®ç¬¦ææ¾èçåºå«æ¯ï¼å¦ææä½æ°çç±»åä¸åï¼== è¿ç®ç¬¦ä¼å¨æ¯è¾ä¹åå°è¯å°å®ä»¬è½¬æ¢ä¸ºç¸åçç±»åã
示ä¾
>æ¯è¾ç¸åç±»åçæä½æ°
js
"hello" === "hello"; // true
"hello" === "hola"; // false
3 === 3; // true
3 === 4; // false
true === true; // true
true === false; // false
null === null; // true
æ¯è¾ä¸åç±»åçæä½æ°
js
"3" === 3; // false
true === 1; // false
null === undefined; // false
æ¯è¾å¯¹è±¡
js
const object1 = {
key: "value",
};
const object2 = {
key: "value",
};
console.log(object1 === object2); // false
console.log(object1 === object1); // true
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-equality-operators> |