Maison >interface Web >js tutoriel >Pourquoi NaN === NaN renvoie-t-il False en JavaScript ?

Pourquoi NaN === NaN renvoie-t-il False en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-25 16:37:09397parcourir

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

Le comportement particulier de JavaScript où NaN === NaN évalue à false des développeurs souvent des développeurs. Cet article précise pourquoi c'est le cas et propose des méthodes correctes pour la détection de NAN.

Comprendre nan

nan, abréviation de «Not-A-Number», signifie le résultat d'opérations mathématiques invalides ou non définies. Les exemples incluent:

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

Pourquoi l'inégalité?

La norme IEEE 754 pour l'arithmétique à virgule flottante dicte que Nan n'est égal à rien, y compris lui-même. Cette conception empêche le traitement erroné des résultats invalides comme s'ils étaient des valeurs numériques valides. Essentiellement, Nan signale une condition d'erreur et est intrinsèquement incomparable.

Vérification NAN fiable

La comparaison directe échoue lorsqu'il s'agit de NAN. Au lieu de cela, utilisez ces fonctions:

  • isNaN(): Cette fonction globale vérifie si une valeur est nan ou peut être contrainte dans nan:
<code class="language-javascript">console.log(isNaN("abc"));    // true</code>
  • Number.isNaN(): Cette méthode fournit une vérification plus précise de Nan, en évitant la coercition de type:
<code class="language-javascript">console.log(Number.isNaN(NaN)); // true</code>

en résumé

La comparaison NaN === NaN donne false car NAN représente un état d'erreur, pas une valeur numérique. Pour détecter avec précision NAN, utilisez isNaN() ou Number.isNaN() pour un code robuste et fiable.

source

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn