05. Typy danych

Typy danych w JS:

W JS jest kilka typów danych i można na nich wykonywać operacje:

  • liczby (Number),
  • ciągi znaków (String),
  • wartości logiczne (Boolean),
  • obiekty (Object),
  • tablice (Array),
  • typy specjalne: Null, Undefined.

Każdy z tych typów można przypisać do zmiennej.

typ liczbowy – w porównaniu z innymi językami programowania nie uwzględnia on podziału na liczby całkowite i zmiennoprzecinkowe. Umożliwia wprowadzanie liczb w postaci dziesiętnej (np. 16), ósemkowej (np. 020) lub szesnastkowej (np. 0xF) dozwolona jest również notacja wykładnicza w postaci X.YeZ, gdzie X stanowi część całkowitą, Y część dziesiętną, z Z jest wykładnikiem potęgi liczby 10 (np. 0.16e2),

Wartość dziesiętna Wartość ósemkowa Wartość szesnastkowa Notacja wykładnicza
1 01 0x1 0.01e2
8 010 0x8 0.08e2
123 0173 0x78 1.23e2
1024 02000 0x400 1.024e3

ciągi znaków (typ łańcuchowy) – to dowolne ciągi znaków. Należy umieścić je w cudzysłowie lub w apostrofach. W ciągach znaków mogą również wystąpić znaki specjalne np.:

Sekwencja znaków Znaczenie
\b Backspace
\n Nowy wiersz
\r Powrót karetki
\f Nowa strona
\" Cudzysłów
\' Apostrof
\\ Lewy ukośnik (backslash)

Przykład zastosowania sekwencji znaków.

Ciąg znaków do wyświetlenia Zapis w JS
Trzeba wejść do katalogu C:\Windows\System "Trzeba wejść do katalogu C:\\Windows\\System"
style="color:black;background:yellow" "style=\"color:black;background:yellow\"
\/\/ "\\\/\\\/"

Łańcuchy znaków to obiekty typu String. Na tych obiektach możemy wywoływać różne metody. W tabeli zawarte są najczęściej używane:

Metoda Wywołanie Wynik Opis
text = "Ala ma kota";
length text.length 11 Zwraca długość ciągu w znakach
charAt() text.charAt(4) m Zwraca znak na danej pozycji]
charCodeAt text.charCodeAt(4) 109 Zwraca kod ASCII znaku na podanej pozycji
toUpperCase() text.toUpperCase() ALA MA KOTA Zamienia wszystkie litery na wielkie
toLowerCase() text.toLowerCase() ala ma kota Zamienia wszystkie litery na małe
indexOf() text.indexOf('kot') 7 Podaje pozycję szukanego tekstu. Jeżeli nie ma tekstu zwracana jest -1
lastIndexOf() text.lastIndexOf('a') 10 Podobnie do wcześniejszej metody, ale zwraca index ostatniego wystąpienia
encodeUrl() text.encodeUrl() Ala%20ma%20kota W niektórych przypadkach niepożądane jest stosowanie niektórych znaków: , spacja - # _ & % [ ] & ; : ? ' ( ) ~ | ` !. Z tej racji należy je w jakiś sposób zakodować.
decodeUrl text.decodeUrl('Ala%20ma%20kota') Ala ma kota Odkodowanie łańcucha znaków zakodowanego poprzednią metodą.
substr() text.substr(7,4) kota Pobiera część ciągu znaków. Długość tego ciągu znaków wyznacza drugi parametr. Brak drugiego parametru oznacza pobranie ciągu znaków do samego końca.
substring() text.substring(0,3) Ala Metoda podobna do poprzedniej. Różnica polega na tym, że drugi parametr określa pozycję znaku w ciągu. Jeżeli drugi parametr będzie większy, metoda zamieni miejscami te dwa parametry.
slice() text.slice(0,3) Ala Metoda bardzo podobna do poprzedniej. Zwraca ciąg znaków z podanego ciągu.
split() text.split(' ',2) Array('Ala', 'ma') Zwraca tablicę ciągów znaków podzieloną wg pierwszego parametru (spacji). Drugi parametr określa ile ma być elementów w tablicy. Nie podanie drugiego parametru zwróci w tym przypadku wszystkie wyrazy.
replace() text.replace('Ala','Ola') Ola ma kota Zamienia pierwsze wystąpienie szukanego ciągu i zamienia go na ciąg podany w drugim parametrze. Aby zamienić wszystkie wystąpienia danego ciągu należy skorzystać z wyrażeń regularnych

Typ logiczny może przyjmować jedną z dwóch dostępnych wartości: true oraz false. Jest stosowany głównie przy budowaniu wyrażeń logicznych lub do porównywania danych. Typ obiektowy służy do reprezentacji obiektów. Najczęściej wykorzystuje się obiekty wbudowane oraz udostępniane przez przeglądarkę, ale nic nie stoi na przeszkodzie, aby stworzyć własny typ obiektowy.

Typ tablicowy. Tablice w JS obsługiwane są przez klasę Array. Obiekt tej klasy, czyli tablicę, możemy tworzyć na trzy sposoby:

  • var tabl = new Array(); //pusta tablica
  • var tabl = new Array(10); //utworzenie tablicy 10 elem.
  • var tabl = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //utworzenie tablicy z podaniem elementów, które mają się w niej znaleźć.

Możemy również utworzyć tablicę stosując nawiasy kwadratowe:

  • var tabl = [ ];
  • var tabl = [ 10 ];
  • var tabl = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

Aby pobrać wartość pierwszego elementu tablicy należy posłużyć się składnią: tabl[0]. W nawiasy kwadratowe wpisujemy indeks elementu, który chcemy pobrać. Indeksy numerowane są od zera. Są również tablice wielowymiarowe i asocjacyjne.

Typy specjalne dzielą się na dwa rodzaje:

  • null – określa wartość pustą,
  • undefined – określa wartość niezdefiniowaną. Można go przypisać do zmiennej bezpośrednio lub przyjmuje go zmienna, która nie została zainicjowana – nie przypisano do niej żadnej wartości.