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!