Ten kod w JS daje mi wyskakujące okienko z napisem „Myślę, że null to liczba”, co wydaje mi się nieco niepokojące. czego mi brakuje?
if (isNaN(null)) {
alert("null is not a number");
} else {
alert("i think null is a number");
}
Używam przeglądarki Firefox 3. Czy to błąd przeglądarki?
Inne testy:
console.log(null == NaN); // false
console.log(isNaN("text")); // true
console.log(NaN == "text"); // false
Więc problem wydaje się nie polegać na dokładnym porównaniu z NaN?
Edycja: Teraz udzielono odpowiedzi na pytanie, wyczyściłem swój post, aby mieć lepszą wersję dla archiwum. Jednak powoduje to, że niektóre komentarze, a nawet odpowiedzi są trochę niezrozumiałe. Nie obwiniaj ich autorów. Zmieniłem między innymi:
- Usunąłem notatkę mówiącą, że schrzaniłem nagłówek, przywracając jego znaczenie
- Wcześniejsze odpowiedzi pokazały, że nie wyjaśniłem wystarczająco jasno, dlaczego uważam, że zachowanie jest dziwne, więc dodałem przykłady, które sprawdzają ciąg i wykonują ręczne porównanie.