Isnan - javascript, mdn

Funcția isNaN () determină dacă un literal sau variabilă este o valoare numerică (NaN) sau nu. Când lucrați cu această funcție, trebuie să fiți atenți deoarece nu funcționează corect. Dacă sunteți interesat de mai multe detalii pot fi vizualizate Number.isNaN () este așa cum este descris în ECMAScript 6, în mod alternativ, puteți utiliza pentru a testa typeof literală sau variabila la nici o valoare numerică.

O valoare literală sau o variabilă care va fi verificată pentru o valoare non-numerică.

Pentru ce este funcția isNaN?

Notă:

Pentru verificarea alternativă a unei variabile pe NaN fără a utiliza funcția isNaN (), puteți folosi x! == x

Generarea valorii NaN

Valoarea NaN este generată de operații aritmetice, rezultatul căruia este nedefinit sau nereprezentat. Astfel de condiții nu indică neapărat o suprapunere de stive. NaN poate fi, de asemenea, rezultatul încercării de a converti un număr într-un șir, sau o valoare care nu are un echivalent în primitive numerice simple.

De exemplu, împărțirea zero la zero întoarce NaN - dar împărțind alte numere cu 0 nu se întoarce NaN.

Caracteristicile comportamentului

Din cele mai vechi versiuni ale funcției isNaN a comportamentului său pentru literali sau variabile non-numerice a fost destul de confuz. Când argumentul pentru funcția isNaN este o variabilă a cărui tip nu este Număr. este convertită la tipul de număr. Valoarea rezultată este apoi verificată pentru a vedea dacă este NaN. Astfel, pentru valori non-numerice, care pot fi transformate în tip numeric, fără nici-nan valori (în particular, un șir gol sau entități logice care sunt transformate în 0 sau 1), valoarea returnată este „fals“ poate fi o surpriză completă; șirul gol este convertit în "nu un număr". Confuzia provine din faptul că „nu este un număr“ are o anumită valoare așa cum este descris în numerele de standardul IEEE-794 virgulă mobilă. Funcția trebuie să fie percepută ca un răspuns la întrebarea „Este valoarea numărul corect de standardul IEEE-794?“

În următoarea versiune a ECMAScript (ES6), funcția Number.isNaN () este de asemenea prezentă. Number.isNaN (x) va fi o metodă fiabilă pentru a verifica dacă x conține NaN sau nu. Chiar și cu Number.isNaN. totuși, rezultatul NaN rămâne o valoare numerică exactă, și nu doar "nu un număr".

specificație

Articole similare