ใน JavaScript ใช้ double equals และ triple equals สำหรับเปรียบเทียบสอง operand ความแตกต่างคือ
| ลำดับ | คีย์ | Double Equals (==) | Triple Equals (===) |
|---|---|---|---|
| 1 | ชื่อ | Double equals เรียกว่า Equality Operator | Triple equals เรียกว่า Identity / Strict equality Operator |
| 2 | การเปรียบเทียบ | Double equals ใช้ Type converting (แปลงประเภท) | Triple equals ใช้ Strict conversion โดยไม่แปลง operand ใดๆ |
| 3 | ไวยากรณ์ | Double equals: (a == b) | Triple equals: (a === b) |
| 4 | การทำงาน | Double equals แปลง operand ให้เป็นประเภทเดียวกันก่อนแล้วค่อยเปรียบเทียบ (type coercion comparison) | Triple equals ไม่แปลงประเภทก่อนเปรียบเทียบ คืน true ก็ต่อเมื่อ type และ value ของทั้งสอง operand เหมือนกันทุกประการ |
ตัวอย่าง == vs ===
var a = true; var b = 1; var c = true; console.log (a == b); // แปลง 1 เป็น boolean true แล้วค่อยเปรียบเทียบ console.log (a === c); // ทั้งคู่เป็นประเภทเดียวกัน ไม่ต้องแปลง เปรียบเทียบตรง console.log (a === b); // ไม่แปลง ประเภทต่างกัน คาดหวัง false
ผลลัพธ์
true true false