Ce code dans JS me donne un popup disant "je pense que nul est un nombre", ce que je trouve légèrement dérangeant. Qu'est-ce que je rate?
if (isNaN(null)) {
alert("null is not a number");
} else {
alert("i think null is a number");
}
J'utilise Firefox 3. Est-ce un bug du navigateur?
Autres tests:
console.log(null == NaN); // false
console.log(isNaN("text")); // true
console.log(NaN == "text"); // false
Donc, le problème ne semble pas être une comparaison exacte avec NaN?
Edit: Maintenant que la question a été répondue, j'ai nettoyé mon message pour avoir une meilleure version pour l'archive. Cependant, cela rend certains commentaires et même certaines réponses un peu incompréhensibles. Ne blâmez pas leurs auteurs. Parmi les choses que j'ai changées, il y avait:
- Suppression d'une note disant que j'avais foiré le titre en premier lieu en inversant sa signification
- Les réponses précédentes ont montré que je n'indiquais pas assez clairement pourquoi je pensais que le comportement était étrange, j'ai donc ajouté les exemples qui vérifient une chaîne et font une comparaison manuelle.