Un examen plus approfondi de isNaN() et Number.isNaN() en JavaScript et des différences entre eux

Dans JavaScript, nous utilisons généralement isNaN()pour vérifier si une valeur est NaN(Not-a-Number). Cependant, ES6 a introduit Number.isNaN()des méthodes qui se ressemblent, mais il existe des différences subtiles entre elles, que cet article révélera.

1. isNaN()est une fonction globale, mais Number.isNaN()c'est Numberune méthode statique de .

Examinons d’abord leur utilisation de base.

// 代码
isNaN(NaN); // true
isNaN("Hello"); // true
Number.isNaN(NaN); // true
Number.isNaN("Hello"); // false

Comme indiqué ci-dessus, isNaN() la fonction tente de convertir son argument en nombre, puis vérifie si le résultat est NaN. C'est pourquoi isNaN("Hello") renvoie true, car essayer de convertir une chaîne non numérique en nombre renverra NaN.

En revanche, Number.isNaN()aucune tentative n’est faite pour transformer l’argument en un nombre. NaNIl ne sera renvoyé que si le paramètre lui-même est true.

2. isNaN()Il y aura des problèmes avec les paramètres de type non numérique.

C'est isNaN()un piège courant :

// 代码
isNaN("123"); // false

Dans cet exemple, une chaîne isNaN("123")est renvoyée même si elle ne peut pas être interprétée comme un nombre. En effet, il essaie d'abord de convertir la chaîne en nombre et peut être converti en nombre , il renvoie donc .false"123"isNaN()"123"123false

Mais Number.isNaN()cela ne sera pas trompeur pour les paramètres non numériques :

// 代码
Number.isNaN("123"); // false

3. Scénarios d'utilisation

À utiliser isNaN()lorsque vous devez vérifier si une valeur est NaNet lorsque vous devez traiter des valeurs non numériques comme NaN.
À utiliser Number.isNaN()lorsque vous devez vérifier strictement si une valeur est un NaN, sans traiter les valeurs non numériques comme NaN.

Résumer

isNaN()et Number.isNaN()les deux ont leur place, mais soyez conscient des différences subtiles entre eux. Le choix de la fonction appropriée dépend de votre cas d'utilisation, si vous devez vérifier plus précisément si une valeur est NaN, Number.isNaN()c'est le meilleur choix. NaNCela peut être utilisé si vous souhaitez que les valeurs non numériques soient également traitées isNaN().

Comprendre ces différences peut vous aider à écrire JavaScriptun code plus fiable et à éviter les erreurs inattendues provoquées par les conversions de types.

Je suppose que tu aimes

Origine blog.csdn.net/JaneLittle/article/details/132452979
conseillé
Classement