Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ความแตกต่างหลักระหว่างออเปอเรเตอร์ '==' และ '===' ใน JavaScript

ความแตกต่างระหว่าง == และ ===

ความแตกต่างหลักคือ == (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