Convertir un NaN en 0 en utilisant JavaScript #
Utilisez l’opérateur logique OR (||) pour convertir NaN
en 0
par exemple
const result = val || 0;
. L’opérateur logique OR (||) renvoie la valeur de droite si la valeur de gauche est fausse.
droite si la valeur de gauche est fausse.
let val = NaN;
val = val || 0;
console.log(val);
Le site
OU logique (||)
renvoie la valeur de droite si la valeur de gauche est fausse.
Les valeurs erronées en JavaScript sont null
, undefined
, false
, 0
, ""
(chaîne vide), NaN
(pas un nombre).
Cela signifie qu’on ne vérifie pas explicitement si la valeur est égale à NaN
nous vérifions que la valeur est fausse. Il peut donc s’agir d’une chaîne vide, undefined
, null
, etc.
Une façon simple d’y penser est la suivante : la valeur à droite de l’opérateur est une valeur de secours au cas où la valeur à gauche serait fausse.
de secours au cas où la valeur de gauche serait fausse.
Alternativement, vous pouvez vérifier explicitement si la valeur est NaN
.
let val = NaN;
if (Number.isNaN(val)) {
val = 0;
}
console.log(val);
Déclarant le val
avec la variable let
nous permet de la réaffecter si
la valeur stockée est égale à NaN
.
Bien que cette approche soit un peu plus verbeuse, elle est toujours facile à lire et
intuitive.
Vous pouvez également utiliser l’opérateur
opérateur ternaire.
Utiliser l’opérateur ternaire pour convertir NaN
en zéro, par exemple
const result = Number.isNaN(val) ? 0 : val;
. Si la valeur est égale à NaN
,
l’opérateur renvoie 0
sinon la valeur est retournée.
let val = NaN;
const result = Number.isNaN(val) ? 0 : val;
console.log(result);
L’opérateur ternaire est très similaire à l’opérateur if/else
déclaration.
Si l’expression à gauche du point d’interrogation est évaluée à une valeur véridique, la valeur à gauche du deux-points est retournée, sinon la valeur à droite est retournée.
Notez que nous avons utilisé la fonction
Number.isNaN
pour vérifier si la valeur est NaN
(pas un nombre).
Vous ne devriez pas essayer de comparer explicitement à NaN
car NaN
est la seule valeur
en JavaScript, qui n’est pas égale à elle-même.
console.log(NaN === NaN);
Toute autre valeur que vous essayez de comparer à elle-même, vous obtiendrez true
en retour, mais
ce n’est pas le cas avec NaN
.