ก่อนอื่นฉันต้องการพูดถึงว่าฉันรู้วิธีisNaN()
และการNumber.isNaN()
ทำงาน ฉันกำลังอ่านคู่มือที่ชัดเจนโดย David Flanagan และเขายกตัวอย่างวิธีการตรวจสอบว่ามีค่าNaN
:
x !== x
ซึ่งจะส่งผลtrue
ถ้าหากมีx
NaN
แต่ตอนนี้ฉันมีคำถาม: ทำไมเขาใช้การเปรียบเทียบที่เข้มงวด เพราะดูเหมือนว่า
x != x
ทำงานในลักษณะเดียวกัน มันมีความปลอดภัยที่จะใช้ทั้งสองรุ่นหรือฉันหายไปค่าบางอย่าง (s) ใน JavaScript ที่จะกลับมาtrue
สำหรับx !== x
และfalse
สำหรับx != x
?
NaN
ไม่ใช่ประเภทที่ไม่ซ้ำกันมันเป็นตัวเลข มันเป็นคุณค่าที่ไม่เหมือนใคร
===
กับ NaN เพื่อให้ประเด็นที่ว่าแนนนั้นไม่เท่ากับตัวของมันเอง เขาไม่ได้ "ผิด" เขากำลังทำแบบฝึกหัดการสอนซึ่งแสดงว่ามันไม่ได้ผล
!==
เช็คมากกว่า!=
เช็ค เท่าที่ผมทราบไม่มีค่าอื่น ๆx != x
ที่ แต่มีกลุ่มนักพัฒนา JavaScript ที่แตกต่างกันสองกลุ่ม: กลุ่มที่ชอบ!=
และกลุ่มที่ชอบ!==
ไม่ว่าจะเป็นเพื่อความเร็วความชัดเจนความหมาย ฯลฯ