Rumah >hujung hadapan web >tutorial js >Mengapakah `jenis NaN` Mengembalikan \'nombor\'?
Nampaknya paradoks bahawa nilai yang dilabelkan sebagai "Bukan Nombor" (NaN) dianggap sebagai nombor oleh jenis operator. Walau bagaimanapun, tingkah laku ini berpunca daripada sifat asas NaN.
Pertama, NaN ialah jenis angka, walaupun namanya. Ia mewakili nilai berangka yang tidak sah atau tidak ditentukan. Walaupun semua nombor adalah anggaran dan tertakluk kepada pengehadan, NaN ialah contoh khusus bagi nilai berangka yang tidak boleh diwakili dengan tepat.
Kedua, NaN tidak sama dengan mana-mana nilai lain, termasuk nilai itu sendiri. Ini kerana NaN bukan nilai khusus tetapi sebaliknya pemegang tempat untuk hasil yang tidak sah atau tidak ditentukan. Oleh itu, membandingkan NaN dengan dirinya sendiri atau mana-mana nilai lain akan sentiasa mengembalikan palsu.
Perbandingan dengan NaN sentiasa mengembalikan hasil yang tidak teratur:
NaN tidak sama dengan mana-mana nombor, termasuk dirinya sendiri. Ini bermakna walaupun membandingkan NaN dengan dirinya sendiri akan menghasilkan palsu.
Predikat perbandingan isyarat dan bukan isyarat:
Sesetengah operasi perbandingan, seperti kurang daripada atau lebih besar daripada , boleh sama ada membuang pengecualian atau mengembalikan palsu apabila berurusan dengan NaN. Operasi ini dikenali sebagai predikat isyarat dan bukan isyarat.
Pengujian untuk NaN menggunakan kesamaan dan ketaksamaan:
Memandangkan ujian kesamaan dan ketaksamaan bukan isyarat, ia akan tidak membuang pengecualian. Jika nombor biasa diuji untuk kesamaan dengan dirinya, ia akan sentiasa kembali benar. Walau bagaimanapun, jika NaN diuji untuk kesamaan dengan dirinya sendiri, ia akan sentiasa mengembalikan palsu. Ini menyediakan cara yang mudah untuk mengesan nilai NaN "senyap-senyap."
Atas ialah kandungan terperinci Mengapakah `jenis NaN` Mengembalikan \'nombor\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!