Junior
Come verificare se un numero è NaN?
sobes.tech AI
Risposta dell'AI
Utilizzano la funzione isNaN(), che verifica se il valore è "Non un Numero" (Not-a-Number).
// Esempi di utilizzo di isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, poiché 'hello' non può essere convertito in un numero
console.log(isNaN('123')); // false, poiché '123' può essere convertito nel numero 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, poiché null si converte in 0
// Verifica della conversione di tipi in isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Esiste anche il metodo Number.isNaN(), che verifica in modo più rigoroso se il valore è esattamente NaN, senza effettuare conversioni preliminari.
// Esempi di utilizzo di Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, non converte in numero
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Differenze con isNaN() per argomenti non numerici
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
Il confronto tra NaN e se stesso o qualsiasi altro valore restituisce sempre false, tranne quando si utilizza Object.is().
// Caratteristica del confronto con NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Confronto con Object.is()
console.log(Object.is(NaN, NaN)); // true
A seconda del compito, potrebbe essere necessario usare isNaN() (se è importante il controllo dopo la conversione in numero) o Number.isNaN() (per un controllo rigoroso su NaN). Il metodo Number.isNaN() è preferibile per verificare se un valore specifico è esattamente NaN.