Det är lika enkelt att söka efter NaN (”inte ett nummer”) som att kontrollera om självjämlikhet är i JavaScript.
Dr. Derek Austin 🥳
Följ
15 sep 2019 · 4 min läsning
I JavaScript används specialvärdet NaN (vilket betyder” inte ett tal ”) för att representera resultatet av en matematisk beräkning som inte kan representeras som ett meningsfullt nummer. – Joshua Clanton på A Drip of JavaScript
Det speciella värdet NaN visas i JavaScript när Math -funktioner misslyckas (Math.sqrt(-37)) eller när en funktion som försöker att analysera ett nummer misslyckas (parseInt("No integers here")).
NaN förgiftar sedan alla andra matematiska funktioner, vilket leder till alla andra matematiska operationer som resulterar i NaN.
Observera att i JavaScript kommer division med 0 att returnera Infinity, inte NaN:
Detta resultat beror på hur flytande poi nt definieras mer generellt än bara Javascript. Varför? Ungefär, eftersom 1/0 är gränsen på 1 / x när x närmar sig noll. Och 0/0 har ingen rimlig tolkning alls, därav NaN.
Vad är NaN i alla fall?
NaN är en egenskap för det globala objektet. Det ursprungliga värdet av NaN är Not-A-Number – samma som värdet för Number.NaN. – MDN Docs
Kontroll av NaN är svårare än det verkar
Tyvärr finns det två problem med att försöka söka efter NaN:
typeof NaN är” nummer ”
NaN är ojämlikt med alla andra värden i JavaScript
Kolla in detta kodexempel:
Så hur kontrollerar vi om vi har ett NaN -värde som kommer att förgifta matematik?