Cześć, tu Jakub. Polubiłeś devFlipCards? Postaw mi kawę

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
Nie możesz znaleźć wspólnego terminu na spotkanie z przyjaciółmi? Sprawdź nasze narzędzie
commondate.xyz