ความแตกต่างระหว่าง == และ ===
ความแตกต่างหลักคือ == (Loose Equality) ตรวจสอบเฉพาะค่าเท่านั้น ในขณะที่ === (Strict Equality) ตรวจสอบทั้งค่าและชนิดข้อมูล (Data Type) เช่น String, Number, Boolean เป็นต้น
ก) ออเปอเรเตอร์ == (ตรวจสอบความเท่ากับแบบคลุมเครือ)
ตัวอย่างการใช้งาน:
<html> <body> <p id="demo"></p> <script>
var x = 5;
var y = 5;
var z = 6;
document.getElementById("demo").innerHTML =
(x == y) + "<br>" + (x == z);
</script> </body> </html>
ผลลัพธ์:
true false
ข) ออเปอเรเตอร์ === (ตรวจสอบความเท่ากับแบบเข้มงวด)
ออเปอเรเตอร์ === จะคืนค่า true ก็ต่อเมื่อทั้งค่าและชนิดข้อมูลเท่ากัน มิฉะนั้นจะคืนค่า false ในตัวอย่างต่อไป ตัวแปรทุกตัวมีค่าเป็น 5 แต่อยู่ในชนิดข้อมูลที่ต่างกัน (y และ z เป็น String)
<html> <body> <p id="demo"></p> <script>
var x = 5;
var y = "5";
var z = "5";
document.getElementById("demo").innerHTML =
(x === y) + "<br>" + (x == z);
</script> </body> </html>
ผลลัพธ์:
false true
สรุป: ควรใช้ === เพื่อป้องกันข้อผิดพลาดจากการแปลงชนิดข้อมูลอัตโนมัติ (Type Coercion) ของ JavaScript