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 true
jika dan hanya jika x
isNaN
.
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 true
untuk x !== x
dan false
untuk x != x
?
NaN
bukan 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.