Typy danych i operatory

Typy danych

 

Powiedzieliśmy o historii tego języka jak i pewnych zależnościach możemy przejść do kolejnej części czyli omówić typy danych dostępnych w tym języku.

Numbers

Jest to liczbowy typ danych. W JS zajmuje on 64 bity, dzięki czemu możemy zapisać liczbę w postaci całkowitej z przedziału - 9007199254740991 do 9007199254740991. To całkiem sporo. Te dane mogą się od siebie różnić w zależności od przeglądarki lub środowiska na którym pracujemy. Można je sprawdzić wywołując dwie stałe w konsoli w przeglądarce: Number.MAX_SAFE_INTEGER lub Number.MIN_SAFE_INTEGER. W JavaScript nie ma oddzielnego typu dla liczb zmiennoprzecinkowych. Zapisujemy je dodając kropkę przed częścią dziesiętną, np. 9.81. Istnieje również możliwość dla dużych liczb zapisu za pomocą notacji wykładniczej dodając “e” po czym potęgę liczby 10, np.:

 

2.998e6

 

i pod tym zapisem mamy liczbę 2998000.

To nie znaczy że największą liczbą możliwą do stworzenia jest 9007199254740991. Żeby sczytać największą bądź najmniejszą wartość możliwą do przedstawienia, możemy się odwołać do stałych Number.MAX_VALUE oraz Number.MIN_VALUE. Konsola u mnie zwróciła takie wartości: 1.7976931348623157e+308 i 5e-324. Istnieje możliwość również tworzenia liczby heksadecymalnych np. 0xFF (reprezentuje liczbę 255), lecz z racji rzadkiego praktycznego użycia nie będziemy jej omawiać.

Liczby specjalne

Infinity / -Infinity – reprezentują dodatnią bądź ujemną nieskończoność. Infinity – 1 to nadal nieskończoność. Nie polegaj zbyt mocno na tej liczbie, ponieważ nie jest tak mocno związana z matematyczną nieskończonością i operacje na niej mogą doprowadzić do kolejnej liczby specjalnej czyli NaN.

NaN – (Not a Number), czyli wartość która jest typu Number, lecz nie reprezentuje żadnej poprawnej liczby. Możemy ją uzyskać poprzez dzielenie zera przez zero, lub utworzenia liczby z danej typu String, gdzie nie będzie w niej możliwości utworzenia poprawnej liczby.

Więc w jaki sposób możemy je tworzyć?

Albo wprowadzając zapis według przypadków powyżej, lub używając

konstruktora Numbers:

 

Numbers(2), Numbers('123')

 

Warto jednak pamiętać że tworząc je za pomocą tego konstruktora możemy doprowadzić do utworzenia NaN. Dzieje się to gdy np. chcemy stworzyć liczbę ze stringa ( Number('test') ).

Z racji tego że typy danych są w postaci obiektów, możemy wykonywać

na nich metody. O tym opowiemy sobie w dalszej części materiału.

Sposoby na wykonywanie metod na liczbach:

 

123..toString()

123 .toString()

123.0.toString()

(123).toString()

 

Możemy tu zauważyć że nie możemy bezpośrednio odwołać się za

pomocą kropki do metody, ponieważ typ liczbowy interpretuje ją sobie

jako początek zapisu ułamków dziesiętnych. Stąd ten nietypowe zapisy

powyżej.

Najważniejsze funkcje i metody:

String

String jest typem danych dla wartości tekstowych. Zapisujemy ją

wykorzystując cudzysłów pojedynczy lub podwójny, np.:

 

'test'

"test"

 

Wymagania jakie stawia JS przy nim to że musi być zawsze zadeklarowany w jednej linii. Czyli nie jest dozwolony taki zapis:

 

'test

test

'

I po zastosowaniu takiego zapisu pojawia się błąd o niedozwolonym znaku, ponieważ dalsze linie są już rozumiane jako kod JS. Możemy poradzić sobie stosując znak „ucieczki” czyli „\”. I dla przykładu \n oznacza nową linię a \t tabulator. Jeśli chcemy anulować jego działanie umieszczamy „\\”. Warto także zauważyć że string zachowuje się podobnie do tablicy. Czyli możemy odczytać jego długość, za pomocą właściwości length:

 

'test'.length // zwróci nam 4

 

Lub odwoływać się do poszczególnych znaków za pomocą podania indeksu.

var test = 'test'; test[1]; // zwróci nam literkę e.

Do słowa var jak i tablic wrócimy jeszcze w dalszej części.

Przydatne metody dla danych typu string:

Boolean

Boolean to specjalny typ danych, który przyjmuje tylko dwie wartości: true lub false. Bardzo przydatny podczas tworzenia warunków w kodzie. Polega to na tym że tworząc jakiś warunek załóżmy 5 < 6, wartość z tego warunku zwraca nam wartość boolowską, czyli true. Jeśli jakaś wartość jest nie ustawiona, bądź przyjmuje 0, -0, false, NaN, undefined, to domyślnie ma wartość false.

Undefined i null

Większość języków programowania ma swoje wartości które informują o braku informacji. JavaScript ma dwie takie wartości „undefined” oraz „null”.

Undefined – znaczy „brak wartości”, przyjmują je:

- zadeklarowane zmienne ale bez dopisania do nich wartości

- brakujący argument przy wywołaniu funkcji

- nieistniejące właściwości obiektu

Null – znaczy „brak obiektu”.

 

Operatory

 

Operatory to takie znaki które pozwalają dokonywać operacji na danych. Dzielą się na poszczególne grupy:

Arytmetyczne

Pozwalają na wykonywanie działań arytmetycznych:

Przypisania

Ustalają wartości zmiennych:

Operatory porównania

Służą do tworzenia warunków. Zwracają true lub false.

Operatory logiczne

Służą do łączenia warunków.

Inne

Pozostałe operatory które nie podlegają kategoryzacji.