Junior
Cum verifici dacă un număr este NaN?
sobes.tech AI
Răspuns de la AI
Se utilizează funcția isNaN(), care verifică dacă valoarea nu este un număr (Not-a-Number).
// Exemple de utilizare a isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, deoarece 'hello' nu poate fi convertit în număr
console.log(isNaN('123')); // false, deoarece '123' poate fi convertit în numărul 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, deoarece null se convertește în 0
// Verificarea conversiei de tipuri
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Există și metoda Number.isNaN(), care verifică mai strict dacă valoarea este exact NaN, fără conversie preliminară.
// Exemple de utilizare a Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, nu convertește
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Diferența față de isNaN() pentru argumente non-numerice
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
Compararea NaN cu sine sau cu orice altă valoare returnează întotdeauna false, cu excepția cazului în care se utilizează Object.is().
// Caracteristica comparației cu NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Compararea cu Object.is()
console.log(Object.is(NaN, NaN)); // true
În funcție de sarcină, poate fi necesar să se utilizeze isNaN() (dacă verificarea după conversia în număr este importantă) sau Number.isNaN() (pentru o verificare strictă a NaN). Metoda Number.isNaN() este preferabilă pentru verificarea precisă dacă o valoare este exact NaN.