Scope, Closures e This
Logic bug: 'NaN === NaN' evaluates to false by IEEE 754 standard (use Number.isNaN) – JavaScript NAN_EQUALITY_PITFALL
Per standard IEEE 754 il valore NaN (Not-a-Number) non è mai uguale a nessun valore, neanche a se stesso ('NaN === NaN' restituisce false); verificare la presenza di NaN con l'operatore di uguaglianza è un grave bug logico, si deve usare 'Number.isNaN(x)'.
Cosa significa questo errore?
Per standard IEEE 754 il valore NaN (Not-a-Number) non è mai uguale a nessun valore, neanche a se stesso ('NaN === NaN' restituisce false); verificare la presenza di NaN con l'operatore di uguaglianza è un grave bug logico, si deve usare 'Number.isNaN(x)'.
Messaggio originale
Logic bug: 'NaN === NaN' evaluates to false by IEEE 754 standard (use Number.isNaN)Contesto e parole chiave
Alias
- NaN === NaN is false JavaScript Number.isNaN
Messaggi alternativi
- confronto di uguaglianza NaN fallisce sempre usare Number.isNaN
Prodotti
- JavaScript Engine (V8, SpiderMonkey, JavaScriptCore) / Web API
Piattaforme
- Bun
- Deno
- Node.js
- Qualsiasi Browser Web
Parole chiave
- ecmascript
- errore-javascript-nan-equality-comparison-pitfall
- javascript
- javascript.scope.nan-equality-comparison-pitfall
- js
- Scope, Closures e This
Cause possibili
Causa tecnica per Errore JavaScript: Confronto 'x === NaN' Restituisce Sempre False (Uso di Number.isNaN)
Per standard IEEE 754 il valore NaN (Not-a-Number) non è mai uguale a nessun valore, neanche a se stesso ('NaN === NaN' restituisce false); verificare la presenza di NaN con l'operatore di uguaglianza è un grave bug logico, si deve usare 'Number.isNaN(x)'.
molto comuneDiagnosi
Diagnostica in console browser per Errore JavaScript: Confronto 'x === NaN' Restituisce Sempre False (Uso di Number.isNaN)
Aprire la Console degli Strumenti per Sviluppatori (F12) o verificare l'output di esecuzione Node.js per analizzare lo stack trace.
Come leggere il risultato. Indica il file sorgente esatto e la riga di codice in cui si è verificata l'eccezione o il type error.
node --trace-warnings app.jsRisoluzione
Risoluzione standard per Errore JavaScript: Confronto 'x === NaN' Restituisce Sempre False (Uso di Number.isNaN)
Applicare la correzione al codice sorgente JavaScript conforme agli standard ECMAScript moderni.
- Ispezionare la riga evidenziata nella console degli errori
- Applicare optional chaining (?.) o gestione condizionale dei valori null/undefined
- Ricaricare la pagina o riavviare il processo per verificare la scomparsa dell'errore
Domande frequenti
Come risolvere l'errore Errore JavaScript: Confronto 'x === NaN' Restituisce Sempre False (Uso di Number.isNaN) in JavaScript?
Per standard IEEE 754 il valore NaN (Not-a-Number) non è mai uguale a nessun valore, neanche a se stesso ('NaN === NaN' restituisce false); verificare la presenza di NaN con l'operatore di uguaglianza è un grave bug logico, si deve usare 'Number.isNaN(x)'.
Approfondimenti
- MDN Web Docs - JavaScript Reference documentazione_ufficiale