17. Czym różni się Number.isNaN() i window.isNaN()?

Wartość NaN oznacza not a number, jednakże w JS jest właśnie typu number

console.info(typeof NaN) // number

Powstaje zwykle w wyniku próby konwersji wartości nieliczbowej, na liczbę.

Aby sprawdzić, czy dana zmienna przechowuje NaN, możliwe jest wykorzystanie dwóch funkcji:

window.isNaN() przyjmuje jeden argument. Konwertuje go na liczbę, a następnie sprawdza, czy jest równy NaN. Może prowadzić do nieoczekiwanych rezultatów - niektóre wartości przekształcone na liczbę zachowują się inaczej.

console.info(Number(NaN), isNaN(NaN)); // NaN, true console.info(Number(true), isNaN(true)); // 1, false console.info(Number(false), isNaN(false)); // 0, false console.info(Number("string"), isNaN("string")); // NaN, true console.info(Number({}), isNaN({})); // NaN, true console.info(Number([]), isNaN([])); // 0, false

Funkcja Number.isNaN() przyjmuje jeden argument i sprawdza, czy jest on równy NaN. Nie dokonuje konwersji do liczby.

console.info(Number.isNaN(NaN)); // true console.info(Number.isNaN(true)); // false console.info(Number.isNaN(false)); // false console.info(Number.isNaN("string")); // false console.info(Number.isNaN({})); // false console.info(Number.isNaN([])); // false
devFlipCards 2024

Akceptujesz cookies?

Cookies to niewielkie fragmenty danych zapisywane lokalnie na twoim urządzeniu. Pomagają w funkcjonowaniu naszej strony - zapisują Twoje ustawienia strony takie jak motyw czy język. Poprawiają funkcjonowanie reklam i pozwalają nam na przeprowadzanie analityki odwiedzin strony. Korzystając ze strony zgadasz się na ich wykorzystanie.