ใน JavaScript คุณอาจสังเกตเห็นว่าคุณมีสองวิธีในการเปรียบเทียบค่าที่เท่ากัน:
- ค่าปกติ:
==
(สองเท่า) - เข้มงวดเท่ากับ:
===
(สามเท่า)
ความแตกต่างระหว่างสองเท่า (==
) และเท่ากับสามเท่า (===
) คือ:
- ค่าปกติเท่ากับเปรียบเทียบค่าและละเว้นค่า ประเภท
- เข้มงวดเท่ากับเปรียบเทียบทั้งสองค่า และ ประเภทค่า
ตัวอย่างเช่น:
// returns true
5 == "5"
// returns false
5 === "5"
ในสองตัวอย่างข้างต้น ค่าทางด้านซ้ายคือ ตัวเลข ประเภทค่า ทางด้านขวาคือ สตริง ประเภทค่า (ระบุโดยเครื่องหมายคำพูด ' '
)
ทั้งคู่มีค่า ห้า แต่อันหนึ่งเป็นค่าตัวเลข อีกอันหนึ่งเป็นค่าสตริง เข้มงวดเท่ากับ ===
ประเมินว่าเป็นจริงก็ต่อเมื่อ ทั้งคู่ ค่าและประเภทค่าเท่ากัน
ดังนั้นตัวอย่างทั้งสองนี้จึงประเมิน/ส่งคืน จริง เนื่องจากประเภทค่าที่ด้านใดด้านหนึ่งของค่าเท่ากับที่เข้มงวดจะเหมือนกัน:
// returns true
5 === 5
// returns true
"5" === "5"