isNaN () (Română)

Întrucât cele mai vechi versiuni ale specificației funcției isNaN, comportamentul său pentru argumentele non-numerice a fost confuz. Când argumentul pentru funcția isNaN nu este de tipul Number, valoarea este mai întâi constrânsă la un Number. Valoarea rezultată este apoi testată pentru a determina dacă este NaN. Astfel, pentru non-numere care atunci când sunt constrânse la tipul numeric, rezultă o valoare numerică non-NaN validă (în special șirul gol și primitivele booleene, care atunci când sunt constrânse dau valori numerice zero sau una), valoarea returnată „falsă” poate fi neașteptată; șirul gol, de exemplu, cu siguranță „nu este un număr”. Confuzia provine din faptul că termenul, „nu un număr”, are o semnificație specifică pentru numerele reprezentate ca valori în virgulă IEEE-754. Funcția ar trebui interpretată ca răspuns la întrebare, „este această valoare, atunci când este forțată la o valoare numerică, o valoare IEEE-754” Nu este un număr „?”

ECMAScript 2015 conține Number.isNaN() funcție. Number.isNaN(x) este o modalitate fiabilă de a testa dacă x este NaN sau nu. Chiar și cu Number.isNaN, totuși, semnificația NaN rămâne semnificația numerică precisă și nu, „nu un număr”. Alternativ, în absența Number.isNaN, expresia (x != x) este un mod mai fiabil de a testa dacă variabila x este NaN sau nu, deoarece rezultatul nu este supus falsului pozitiv care face isNaN nesigur.

Un polyfill pentru isNaN ar fi (polyfill utilizează caracteristica unică egală cu ea însăși a NaN):

Write a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *