Pertama-tama saya ingin menyebutkan bahwa saya tahu caranya isNaN()dan Number.isNaN()bekerja. Saya membaca The Definite Guide oleh David Flanagan dan dia memberikan contoh bagaimana memeriksa apakah nilainya NaN:
x !== x
Hal ini akan mengakibatkan truejika dan hanya jika xisNaN .
Tapi sekarang saya punya pertanyaan: mengapa dia menggunakan perbandingan yang ketat? Karena sepertinya begitu
x != x
berperilaku dengan cara yang sama. Apakah aman menggunakan kedua versi, atau saya kehilangan beberapa nilai dalam JavaScript yang akan kembali trueuntuk x !== xdan falseuntuk x != x?
NaNbukan tipe yang unik, ini nomor. Ini adalah nilai unik yang tidak sama dengan dirinya sendiri.
===dengan NaN untuk menegaskan bahwa NaN tidak sama dengan dirinya sendiri. Dia tidak "salah," dia melakukannya sebagai latihan mengajar, menunjukkan bahwa itu tidak berhasil.
!==cek daripada!=cek. Sejauh yang saya ketahui tidak ada nilai lain di manax != x. Tetapi ada dua kelompok pengembang JavaScript yang berbeda: mereka yang lebih suka!=dan yang lebih suka!==, baik untuk kecepatan, kejelasan, ekspresi, dll.