isNaN () (Italiano)

Sin dalle primissime versioni della specifica della funzione isNaN, il suo comportamento per argomenti non numerici è stato fonte di confusione. Quando l’argomento della funzione isNaN non è di tipo Number, il valore viene prima convertito in un numero. Il valore risultante viene quindi verificato per determinare se è NaN. Pertanto, per i non numeri che quando costretti al tipo numerico risultano in un valore numerico non NaN valido (in particolare la stringa vuota e le primitive booleane, che quando forzate danno valori numerici zero o uno), il valore restituito “falso” può essere inaspettato; la stringa vuota, ad esempio, è sicuramente “non un numero”. La confusione deriva dal fatto che il termine “non un numero” ha un significato specifico per i numeri rappresentati come valori in virgola mobile IEEE-754. La funzione deve essere interpretata come una risposta alla domanda, “è questo valore, se costretto a un valore numerico, un valore IEEE-754” Not A Number “?”

ECMAScript 2015 contiene Number.isNaN() funzione. Number.isNaN(x) è un modo affidabile per verificare se x è NaN o meno. Anche con Number.isNaN, tuttavia, il significato di NaN rimane il preciso significato numerico e non “non un numero”. In alternativa, in assenza di Number.isNaN, l’espressione (x != x) è un modo più affidabile per verificare se la variabile x è NaN o meno, poiché il risultato non è soggetto a falsi positivi che rendono isNaN inaffidabile.

Un polyfill per isNaN sarebbe (il polyfill sfrutta la caratteristica unica mai uguale a se stesso di NaN):

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *