W języku JavaScript występuje kilka typów, czyli rodzajów danych, które są wbudowane w język. Można je podzielić następująco:
-
typ liczbowy,
-
typ łańcuchowy,
-
typ logiczny,
-
typ obiektowy,
-
typy specjalne.
Typ liczbowy
Typ liczbowy służy do reprezentacji liczb, przy czym nie ma występującego w klasycznych językach programowania rozróżnienia na typy całkowitoliczbowe i rzeczywiste (zmiennopozycyjne). Liczby zapisywane są za pomocą literałów (inaczej stałych napisowych, z ang. string constant, literal constant) liczbowych. Obowiązują przy tym następujące zasady:
-
Jeżeli ciąg cyfr nie jest poprzedzony żadnym znakiem lub jest poprzedzony znakiem +, reprezentuje on wartość dodatnią; jeżeli natomiast jest poprzedzony znakiem –, reprezentuje wartość ujemną.
-
Jeżeli literał rozpoczyna się od cyfry zero, jest traktowany jako wartość ósemkowa.
-
Jeżeli literał rozpoczyna się od ciągu znaków 0x, jest traktowany jako wartość szesnastkowa (heksadecymalna). W zapisie wartości szesnastkowych mogą być wykorzystywane zarówno małe, jak i duże litery alfabetu od A do F.
-
Literały mogą być zapisywane w notacji wykładniczej, w postaci X.YeZ, gdzie X to część całkowita, Y część dziesiętna, natomiast Z to wykładnik potęgi liczby 10. Zapis taki oznacza to samo, co X.Y * 10Z.
Przykłady literałów:
123 |
dodatnia całkowita wartość dziesiętna 123 |
-123 |
ujemna całkowita wartość dziesiętna –123 |
012 |
dodatnia całkowita wartość ósemkowa równa 10 dziesiętnie |
-024 |
ujemna całkowita wartość ósemkowa równa 20 dziesiętnie |
0xFF |
dodatnia całkowita wartość szesnastkowa równa 255 dziesiętnie |
-0x0f |
ujemna całkowita wartość szesnastkowa równa –15 dziesiętnie |
1.1 |
dodatnia wartość rzeczywista 1.1 |
-1.1 |
ujemna wartość rzeczywista 1.1 |
0.1E2 |
dodatnia wartość rzeczywista równa 10 |
1.0E-2 |
dodatnia wartość rzeczywista równa 0.01 |
Typ łańcuchowy
Typ łańcuchowy pozwala na reprezentację ciągów znaków. Ciągi te (inaczej stałe napisowe) powinny być ujęte w znaki cudzysłowu, aczkolwiek dopuszczalne jest również użycie znaków apostrofu. Przykładowy literał napisowy:
"abcdefg"
Ciąg może zawierać przedstawione w tabeli 2.1 sekwencje specjalne.
Tabela 2.1. Sekwencje znaków specjalnych
Sekwencja |
Znaczenie |
\b |
backspace (ang. backspace) |
\n |
nowy wiersz (ang. new line) |
\r |
powrót karetki (ang. carriage return) |
\f |
nowa strona (ang. form feed) |
\t |
tabulacja pozioma (ang. horizontal tab) |
\" |
cudzysłów (ang. double quote) |
\' |
apostrof (ang. single quote) |
\\ |
lewy ukośnik (ang. backslash) |
Typ logiczny
Typ logiczny (boolean) pozwala na określenie dwóch wartości logicznych: prawda i fałsz. Wartość prawda jest w języku JavaScript reprezentowana przez słowo true, natomiast wartość fałsz — przez słowo false.
Typ obiektowy
Typ obiektowy służy do reprezentacji obiektów. Nie ma specjalnego słowa kluczowego oznaczającego ten typ. Najczęściej wykorzystuje się obiekty wbudowane oraz udostępniane przez przeglądarkę. Pełna obsługa programowania obiektowego (zorientowanego obiektowo) ma występować dopiero w wersji JavaScript 2.0 (ECMAScript v5 i v6).
Typy specjalne
Wyróżniamy dwa rodzaje typów specjalnych: null i undefined. Typ null określa wartość pustą (czy też brak wartości) i najczęściej używany jest podczas korzystania z obiektów i programowania obiektowego. W tym kontekście jeśli jakiś byt programistyczny (zmienna, obiekt, właściwość itd.) ma wartość null, oznacza to, że jest pusty. Typ undefined określa wartość niezdefiniowaną. W tym kontekście wartość undefined ma niezainicjowana zmienna, zmienna, której jawnie przypisano wartość undefined, bądź też nieistniejąca właściwość obiektu.