Ce face Number.isNaN / isNaN
NaN apare când un calcul nu are rezultat numeric: Number("abc"), 0 / 0, Math.sqrt(-1). Particularitatea lui: NaN nu este egal nici cu el însuși, deci x === NaN este mereu false.
Number.isNaN returnează true doar dacă valoarea este chiar NaN. Funcția globală veche isNaN transformă întâi valoarea în număr, așa că dă true și pentru texte ca "abc". Folosește Number.isNaN, iar dacă vrei să verifici un text, transformă-l explicit cu Number().
Parametri
| Parametru | Descriere |
|---|---|
valoare |
Valoarea verificată. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Cele două variante
console.log(Number.isNaN(NaN), isNaN(NaN));
console.log(Number.isNaN("abc"), isNaN("abc"));
console.log(Number.isNaN(undefined), isNaN(undefined));
console.log(Number.isNaN("12"), isNaN("12"));
Rezultat
true true
false true
false true
false false
Exemplul 2: De ce nu merge === NaN
const rezultat = Number("12 lei");
console.log(rezultat);
console.log(rezultat === NaN);
console.log(Number.isNaN(rezultat));
Rezultat
NaN
false
true
Greșeli frecvente
- Compari cu
=== NaN. Comparația este mereu falsă; foloseșteNumber.isNaN(x). - Folosești
isNaN("")ca să verifici un câmp gol. Textul gol devine 0, deci rezultatul estefalse.
Comenzi înrudite
Number.isFinite / isFinite: Verifică dacă o valoare este un număr obișnuit: nici NaN, nici Infinity sau -Infinity.parseInt / Number: Transformă un text în număr: parseInt pentru întregi, parseFloat pentru zecimale, Number pentru conversie strictă.Number.isInteger / isSafeInteger: Verifică dacă o valoare este un număr întreg (și dacă este întreg fără pierdere de precizie).