Javascript redéfinit Infinity, NaN ou “” à 0

J’ai une calculasortingce javascript qui accepte les entrées de l’utilisateur, fait des calculs et écrit le résultat dans le champ “#theResult”

Depuis que “#theResult” est mis à jour lors de la création de clé, il arrive parfois que “#theResult” renvoie Infinity, NaN ou “” jusqu’à ce que tous les champs soient remplis. Tant que tous les champs ne sont pas renseignés, je souhaite que “#theResult” renvoie 0 à la place. Voici le code:

if (theResult === Infinity || theResult === "" || theResult === NaN) { theResult === 0; } $("#theResult").val(theResult); 

Le code complet est ici

Merci d’avance pour votre aide!

Vous avez utilisé theResult === 0 là où vous auriez dû utiliser theResult = 0 .

Le === est pour les comparaisons. Lorsque vous souhaitez modifier la valeur d’une variable, utilisez l’opérateur d’affectation = .

Comme @zzzzBov a dit, la chose la plus simple à faire est de remplacer le tout par

  theResult = isFinite(theResult) && theResult || 0; // updated 

Cela dissimule cependant les subtilités de NaN ; si l’utilisateur a terminé et que le résultat est vraiment NaN , indiquer que 0 n’est pas vraiment correct.