Typ Number
Typ Number jest unikatowym zjawiskiem w językach programowania. Może zarówno przechowywać liczbę całkowitą, jak i liczbę zmiennoprzecinkową.
Liczby całkowite
Deklaracja zmiennej typu Number odbywa się poprzez przyporządkowanie liczby do zmiennej:
var liczba = 1;
Liczby całkowite mogą być wyrażane w ósemkowym oraz w szesnastkowym systemie liczbowym.
var liczba8 = 035; //ósemkowo zapisana liczba 035 odpowiada liczbie 29 w systemie dziesiętnym
var liczba16 = 0xff;//szesnastkowo zapisana liczba 0xff odpowiada liczbie 255 w systemie dziesiętnym
var LICZBA16 = 0xC3;//szesnastkowo zapisana liczba 0xC3 odpowiada liczbie 195 w systemie dziesiętnym
Wyniki przeprowadzanych działań i operacji na liczbach zwracane są w dziesiętnym systemie liczbowym. |
Liczby zmiennoprzecinkowe
Liczby typu zmiennoprzecinkowego deklaruje się poprzez przyporządkowanie liczby rzeczywistej do zmiennej:
var liczba_rzeczywista=12.0;
W przypadku bardzo dużych, jak i bardzo małych liczb, można skorzystać z postaci wykładniczej:
var notacja_naukowa = 12.333e12;//12.333e6 = 12.333*10^6 = 12333000
var notacja_naukowa_mala = 7e-2;//7e-2=0.07
Zmiennoprzecinkowy typ Number przechowywany jest w 64-bitowym formacie IEEE 754 co oznacza, że maksymalnie liczby zapisane w tym formacie mogą posiadać około 16 miejsc po przecinku, w przypadku przekroczeniu tejże wartości, liczba jest zaokrąglana do minimalnej dopuszczalnej wartości.
Wartości nieliczbowe
Typ Number oferuje nam dodatkowo typy nieliczbowe, związane z zakresami i wartościami liczb. Operacje i działania na liczbach nie mogą przekroczyć przedziału (Number.MIN_VALUE, NUMBER.MAX_VALUE) gdzieNumber.MIN_VALUE to minimalna dopuszczalna wartość Number.MAX_VALUE to maksymalna dopuszczalna wartość. Jeżeli wynik obliczeń przekroczy przedział, nadawana mu jest wartość Number.POSITIVE_INFINITY, w przypadku przekroczenia maksimum lub Number.NEGATIVE_INFINITY, w przypadku przekroczenia minimum, nie są to wartości liczbowe, a literały odpowiednio: Inifinity oraz -Infinity. By sprawdzić czy dane działania na liczbach nie przekroczyły dopuszczalnego zakresu przydaje się metoda isFinite(), która to zwraca typ Boolean: true w przypadku, gdy nie wyszliśmy poza dopuszczalny zakres oraz false, gdy go przekroczyliśmy
Ostatnim literałem nieliczbowym oferowanym przez typ Number to NaN, co symbolizuje, że dana wartość zmiennej nie jest liczbą. Zazwyczaj typ Number przyjmuje wartość NaN w przypadku złej konwersji z innego typu na typ Number. By sprawdzić czy mamy do czynienia z NaN korzystamy z metody isNan(), która zwraca typ Boolean: true w przypadku, gdy mamy do czynienia z wartością NaN, oraz false, gdy mamy do czynienia z wartością liczbową.