Junior
Ako skontrolovať, či je číslo NaN?
sobes.tech AI
Odpoveď od AI
Používajú funkciu isNaN(), ktorá kontroluje, či hodnota nie je číslo (Not-a-Number).
// Príklady použitia isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, pretože 'hello' sa nedá previesť na číslo
console.log(isNaN('123')); // false, pretože '123' sa dá previesť na číslo 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, pretože null sa prevádza na 0
// Kontrola konverzie typov
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Existuje aj metóda Number.isNaN(), ktorá presnejšie kontroluje, či je hodnota presne NaN, bez predbežnej konverzie.
// Príklady použitia `Number.isNaN()`
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, nekonvertuje
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
Porovnanie NaN so sebou alebo s akoukoľvek inou hodnotou vždy vráti false, okrem použitia Object.is().
// Špecifickosť porovnania s NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Porovnanie pomocou Object.is()
console.log(Object.is(NaN, NaN)); // true
V závislosti od úlohy môže byť potrebné použiť isNaN() (ak je dôležitá kontrola po konverzii na číslo) alebo Number.isNaN() (pre prísnejšiu kontrolu na NaN). Metóda Number.isNaN() je vhodnejšia na presnú kontrolu, či je hodnota presne NaN.