Vérifier si une valeur est NaN en JavaScript

Alex Dulcianu 12 octobre 2023
  1. Utilisez la fonction intégrée isNaN() pour vérifier si une valeur est NaN en JavaScript
  2. Combinez isNaN() avec parseFloat() pour gérer les chaînes vides
  3. Vérifier si une valeur est NaN en utilisant un opérateur de comparaison en JavaScript
Vérifier si une valeur est NaN en JavaScript

Les valeurs NaN en JavaScript peuvent rendre perplexes les nouveaux venus dans le langage, d’autant plus qu’elles sont souvent confondues avec les valeurs undefined ou Null. NaN est un acronyme pour Not-a-Number, ce qui rend leur objectif assez évident.

JavaScript peut rendre difficile la distinction entre différentes valeurs indéfinies. Les opérations booléennes ont également quelques pièges dont vous devez être conscient lorsque vous traitez avec des valeurs NaN.

Il y a des situations où il faut vérifier et voir si une certaine valeur est de type NaN. En tant que tel, voici quelques méthodes que vous pouvez utiliser pour vérifier si une valeur est NaN.

Utilisez la fonction intégrée isNaN() pour vérifier si une valeur est NaN en JavaScript

L’un des moyens les plus utiles pour effectuer cette vérification consiste à utiliser la méthode de bibliothèque standard isNaN(). Si la valeur que vous lui donnez est NaN, alors le retour de cette fonction sera true. Voici un exemple de la façon dont vous pouvez l’utiliser dans votre code :

let myvar_1 = 'dog';
let myvar_2 = '2';

console.log(isNaN(myvar_1));
console.log(isNaN(myvar_2));

Production :

true
false

Combinez isNaN() avec parseFloat() pour gérer les chaînes vides

Comme mentionné ci-dessus, il y a quelques pièges auxquels vous devez faire attention. L’une d’entre elles implique des chaînes vides, qui renverront false lors de l’utilisation de la fonction isNaN(). Voici un exemple:

let myvar_1 = '';

console.log(isNaN(myvar_1));

Production :

false

Naturellement, ce n’est probablement pas le résultat que vous souhaitez dans ce cas. Pour gérer correctement ces cas, vous pouvez ajouter la méthode parseFloat() à l’intérieur de la fonction isNaN() comme suit :

let myvar_1 = '';

console.log(isNaN(parseFloat(myvar_1)));

Production :

true

Vérifier si une valeur est NaN en utilisant un opérateur de comparaison en JavaScript

La méthode suivante est encore plus rapide que celles décrites ci-dessus et nécessite également moins de code. D’un autre côté, c’est un peu plus déroutant, sans compter qu’il peut s’avérer difficile à maintenir et à documenter correctement.

En bref, les valeurs JavaScript NaN sont les seules à ne pas être égales à elles-mêmes. De ce fait, une simple comparaison peut facilement vous dire si la valeur qui vous intéresse est NaN ou non. Voici comment cela fonctionne :

let myvar_1 = NaN;
let myvar_2 = 'dog';
let myvar_3 = '2';

console.log(myvar_1 !== myvar_1);
console.log(myvar_2 !== myvar_2);
console.log(myvar_3 !== myvar_3);

Production :

true
false
false

Cette méthode fonctionne différemment de la fonction isNaN(). Dans l’exemple précédent, les chaînes qui peuvent être analysées comme des nombres sont considérées comme des nombres. Si vous utilisez l’opérateur de comparaison, les mêmes chaînes ne seront pas analysées comme des nombres. Cet exemple spécifique ne renvoie true que si la valeur est clairement définie comme NaN.

Les deux méthodes ont leurs mérites, mais il faut savoir qu’elles fonctionnent différemment, il faut donc éviter de les mélanger dans la même base de code.

Article connexe - JavaScript Variable