Wartość NaN
#13Często w wyniku operacji arytmetycznych otrzymujemy wynik o wartości NaN. Skrót pochodzi od wyrażenia not a number. Wartość tę możemy dostać na przykład poprzez podzielenie liczby przez stringa:
var i = 10;
var result = i / "foobar";
console.log(result); // NaN
Jak więc sprawdzić, czy rezultalt to NaN, by uniknąć dalszych błędów w aplikacji? Można użyć funkcji isNaN:
isNaN(result); // true
Jest to problematyczne, o ile weźmiemy pod uwagę, że sprawdzana wartość będzie czymś innym niż NaN:
isNaN({}); // true
Można temu zaradzić definiując własną funkcję do sprawdzenia, czy zmienna to NaN. Otóż warto zauważyć, że NaN jako jedyna wartość nie daje prawdy przy porównaniu do samej siebie:
result === result; // false
Na tej podstawie konstruujemy własną funkcję sprawdzającą, alternatywną do isNaN:
var customIsNaN = function(i) {
return i !== i;
}