JavaScript/Zmienne i typy zmiennych
Z Wikibooks, biblioteki wolnych podręczników.
Spis treści |
[edytuj] Typy danych w Javascripcie
Javascript należy do języków programowania które są dynamicznie typowane, oraz słabo typowane.
| Dynamicznie typowany język programowania to taki, w którym dynamicznie możemy nadawać typy zmiennym, podczas wykonywania programu. |
[edytuj] Deklaracja zmiennych
Do deklaracji zmiennych możesz posłużyć się słowem kluczowym "var":
var a;
W ten sposób utworzyliśmy zmienną, jednakże nie została ona zainicjalizowana żadnym typem.
var a=12;
Utworzyliśmy teraz zmienną i posiada ona typ zgodny z naszym przypisaniem, czyli w tym przypadku typem jest liczba.
Możemy także bez deklaracji zmiennej ją inicjalizować:
a=12;
W powyższym zapisie interpreter JavaScriptu domniemywa, że zadeklarowaliśmy zmienną a.
[edytuj] Sprawdzanie typów danych
Zanim przystąpimy do omawiania typów danych w JavaScripcie przedstawimy prosty sposób odczytywania typu poszczególnych zmiennych. Do odczytania typu zmiennej służy operator typeof().
alert(typeof(12));
Powyższy przykład powinien nam wyświetlić "Number". Oznacza to, że 12 jest typem liczby.
[edytuj] Typy proste
Do typów prostych należą: Boolean, Number, String, Null oraz Undefined.
[edytuj] Typ Boolean
Typ boolean może przyjmować dwie wartości: true albo false. Przykłady deklaracji:
var prawda=true; var falsz=false;
[edytuj] Typ Number
Typ Number jest unikatowym zjawiskiem w językach programowania. Może zarówno przechowywać liczbę całkowitą, jak i liczbę zmiennoprzecinkową.
[edytuj] 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. |
[edytuj] 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.
[edytuj] 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) gdzie Number.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 doczynienia z wartością NaN, oraz false, gdy mamy do czynienia z wartością liczbową.
[edytuj] Typ String
String to typ zmiennej, w której przechowywane są ciągi znaków. Definiowanie ciągu znakowych następuje poprzez umieszczenie go w cudzysłowie " :
var zdanie="Ala ma kota.";
lub też w apostrofie ' :
var dlugi_wyraz='Konstantynopolitańczykowianeczka';
Proszę się ustrzegać typowych błędów
źle zamknięty cudzysłów!
źle zamknięty apostrof! |
Typ String jest zaopatrzony w znaki specjalne służące do formatowania tekstu.
| Porównaj z C |
- \b - backspace (usuwa poprzedzający znak)
- \f - wysuniecie strony
- \n - nowy wiersz
- \r - powrót do początku wiersza
- \t - tabulator poziomy
- \" - cudzysłów (przydatne, jeśli łańcuchy znaków wprowadzamy za pomocą cudzysłowów i chcemy wyświetlić ten znak)
- \' - apostrof (przydatne, jeśli łańcuchy znaków wprowadzamy za pomocą apostrofów i chcemy wyświetlić ten znak)
- \\ - ukośnik wsteczny (backslash)
- \0ooo - znak napisany za pomocą liczby w systemie ósemkowym, gdzie 'ooo' należy zastąpić trzycyfrową liczbą ósemkową.
- \xhh - znak napisany za pomocą liczby w systemie szesnastkowym, gdzie 'hh' należy zastąpić dwucyfrową liczbą szesnastkową.
- \unnnn - uniwersalna nazwa znaku, gdzie 'nnnn' należy zastąpić czterocyfrowym identyfikatorem znaku w systemie szesnatkowym.
[edytuj] Pozostałe typy
Przedstawione niżej typy, nie są zmiennymi JavaScriptu, a jedynie własnościami obiektu globalnego.
| Obiekty typu function oraz typy referencyjne zostaną omówione w dalszej części książki |
[edytuj] Typ Undefined
Typ Undefined to inaczej typ nieokreślony. Posiada jedną wartość w formie literału : undefined. Typ ten jest automatycznie nadawany podczas deklarowania zmiennych. Można to łatwo sprawdzić:
var zmienna; alert(typeof(zmienna)); //wyświetla undefined
Jeśli chcemy przypisać wartość wyniku działania funkcji do zmiennej, a dana funkcja nie zwraca żadnej wartości, to nastąpi zwrócenie wartości undefined, tak jak w poniższym przykładzie:
function funkcja(){}; var wartosc_funkcji=0; alert(typeof wartosc_funkcji); //wyświetla number wartosc_funkcji=funkcja(); alert(typeof wartosc_funkcji); //wyświetla undefined
[edytuj] Typ Null
Typ Null to inaczej typ pusty. Posiada jedną wartość w formie literału : null. Typ ten jest zwracany przez funkcje, które to mają zamiar zwrócić nieistniejący obiekt.
| Obecnie wykorzystywane interpretery JavaScriptu nie pozwalają na używanie nieistniejących obiektów i sygnalizują błąd. |