Junior
Jak zkontrolovat, zda je číslo NaN?
sobes.tech AI
Odpověď od AI
Používají funkci isNaN(), která kontroluje, zda je hodnota "Není číslo" (Not-a-Number).
// Příklady použití isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, protože 'hello' nelze převést na číslo
console.log(isNaN('123')); // false, protože '123' lze převést na číslo 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, protože null se převádí na 0
// Kontrola převodu typů
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Existuje také metoda Number.isNaN(), která přesněji kontroluje, zda je hodnota právě NaN, bez předchozího převodu.
// Příklady použití `Number.isNaN()`
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, nepřevádí
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
Porovnání NaN sám se sebou nebo s jakoukoli jinou hodnotou vždy vrací false, s výjimkou použití Object.is().
// Specifičnost porovnání s NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Porovnání pomocí Object.is()
console.log(Object.is(NaN, NaN)); // true
V závislosti na úkolu může být potřeba použít isNaN() (pokud je důležitá kontrola po převodu na číslo) nebo Number.isNaN() (pro přesnou kontrolu na NaN). Metoda Number.isNaN() je vhodnější pro přesnou kontrolu, zda je hodnota právě NaN.