Rumah > hujung hadapan web > tutorial js > Mengapa nan === nan kembali palsu di JavaScript?

Mengapa nan === nan kembali palsu di JavaScript?

Patricia Arquette
Lepaskan: 2025-01-25 16:37:09
asal
331 orang telah melayarinya

Why Does NaN === NaN Return False in JavaScript?

Gelagat pelik JavaScript di mana NaN === NaN menilai untuk false sering membingungkan pembangun. Artikel ini menjelaskan mengapa ini berlaku dan menawarkan kaedah yang betul untuk pengesanan NaN.

Memahami NaN

NaN, singkatan untuk "Not-a-Number," menandakan hasil operasi matematik yang tidak sah atau tidak ditentukan. Contohnya termasuk:

<code class="language-javascript">console.log(0 / 0);       // NaN
console.log(Math.sqrt(-1)); // NaN</code>
Salin selepas log masuk

Mengapa Ketaksamaan?

Piawaian IEEE 754 untuk aritmetik titik terapung menentukan bahawa NaN tidak sama dengan apa-apa, termasuk dirinya sendiri. Reka bentuk ini menghalang rawatan yang salah terhadap hasil yang tidak sah seolah-olah ia adalah nilai berangka yang sah. Pada asasnya, NaN membenderakan keadaan ralat dan sememangnya tidak dapat dibandingkan.

Semakan NaN yang Boleh Dipercayai

Perbandingan langsung gagal apabila berurusan dengan NaN. Sebaliknya, gunakan fungsi ini:

  • isNaN(): Fungsi global ini menyemak sama ada nilai ialah NaN atau boleh dipaksa masuk ke NaN:
<code class="language-javascript">console.log(isNaN("abc"));    // true</code>
Salin selepas log masuk
  • Number.isNaN(): Kaedah ini menyediakan semakan yang lebih tepat untuk NaN, mengelakkan paksaan jenis:
<code class="language-javascript">console.log(Number.isNaN(NaN)); // true</code>
Salin selepas log masuk

Ringkasnya

Perbandingan NaN === NaN menghasilkan false kerana NaN mewakili keadaan ralat, bukan nilai berangka. Untuk mengesan NaN dengan tepat, gunakan isNaN() atau Number.isNaN() untuk kod yang mantap dan boleh dipercayai.

Sumber

Atas ialah kandungan terperinci Mengapa nan === nan kembali palsu di JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan