Appliquer la notion

Vous êtes chargé de traiter les données reçues d'un capteur. Ce capteur retourne des valeur, et pour chaque nombre reçu, il faut lui appliquer un certain traitement. Le nombre se trouve dans la variable numberReceived.

Cependant, le capteur connaît parfois des dysfonctionnements et renvoie NaN, une valeur utilisée pour représenter une quantité qui n'est pas un nombre (Not a Number).

Le code suivant a été écrit par quelqu'un d'autre et il ne fonctionne pas. En effet, la clause else est systématiquement exécutée.

1
const numberReceived = Number.NaN
2
3
if (numberReceived === Number.NaN) {
4
  console.log('Mauvais nombre, à ne pas traiter')
5
} else {
6
  console.log('Nombre à traiter')
7
  // Instructions pour traiter le nombre...
8
}
9

Question

Sur la page MDN du type Number, trouvez un moyen de savoir si un nombre est NaN.

Corriger le bug.

Indice

Il faut regarder du côté des méthodes.

Solution

Pour savoir si un nombre est considéré comme Not a Number, il faut utiliser la méthode Number.isNaN().

1
if (Number.isNaN(numberReceived)) {
2
  console.log('Mauvais nombre, à ne pas traiter')
3
} else {
4
  console.log('Nombre à traiter')
5
  // Instructions pour traiter le nombre...
6
}
Stéphane Crozat, Youssef El Saadany Paternité - Partage des Conditions Initiales à l'Identique