Mengapa jenis NaN mengembalikan 'nombor'?
Apabila menemui nilai bukan-nombor (NaN) dalam JavaScript, anda boleh terkejut apabila mendapati jenisnya adalah 'nombor'. Paradoks yang kelihatan ini timbul daripada ciri khusus dan takrifan NaN.
Dalam JavaScript, NaN ialah jenis data berangka yang berbeza, mewakili nilai yang tidak sah atau tidak ditentukan hasil daripada operasi matematik. Walaupun namanya, ia masih tergolong dalam kategori nombor kerana ia mengekalkan atribut angka tertentu.
NaN timbul apabila operasi seperti bahagi dengan sifar atau mengambil punca kuasa dua nombor negatif menghasilkan kuantiti yang tidak ditentukan. Dengan menetapkan NaN sebagai jenis nombor, JavaScript memastikan rawatan yang konsisten terhadap nilai berangka dan memudahkan pengendalian hasil yang tidak ditentukan sedemikian.
Perlu ambil perhatian bahawa NaN tidak dianggap sama dengan mana-mana nilai berangka lain, termasuk nilai itu sendiri. Ketidaksamaan ini berpunca daripada kemungkinan nilai NaN yang berbeza muncul disebabkan oleh nuansa dalam perkakasan asas atau perwakilan nombor titik terapung. Akibatnya, tingkah laku NaN dalam perbandingan berbeza daripada nombor lain, menjadikan nombor itu sentiasa kembali palsu atau 'tidak tertib.'
Walau bagaimanapun, tingkah laku pelik ini boleh digunakan untuk mengenal pasti nilaiNaN. Dengan menyemak ifx == x mengembalikan palsu, seseorang boleh menentukan secara berkesan ifx ialah NaN. Teknik ini bergantung pada sifat perbandingan kesaksamaan yang tidak memberi isyarat, memastikan tiada pengecualian dilemparkan apabila membandingkan NaN dengan dirinya sendiri.
Ringkasnya, jenis NaN sebagai 'nombor' mencerminkan layanan komprehensif JavaScript terhadap nilai angka, termasuk yang mewakili keputusan matematik yang tidak ditentukan. Walaupun NaN mempamerkan gelagat bukan kesamarataan yang unik, ia mengekalkan sifat berangkanya, membenarkan pengendalian dan pengenalpastian yang konsisten dalam ekosistem bahasa.
Atas ialah kandungan terperinci Mengapakah `typeof NaN` Mengembalikan \'nombor\' dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!