Typy zmiennych

W JavaScript istnieje kilka typów zmiennych. Oto one:

TypOpis
Number Typ liczbowy
String Typ tekstowy
Boolean Typ logiczny
Null Pusta zawartość
Undefined Typ niezidentyfikowany
Object Obiekt
Function Wartość zwracana przez funkcję

Poniżej omawiamy poszczególne typy proste. Typy złożone zostaną opisane nieco później.

Typ liczbowy - Number

Zmienna typu Number może przechowywać liczbę. W odróżnieniu od innych języków programowania nie rozróżniamy tutaj typów liczb całkowitych lub rzeczywistych. Mamy tu do dyspozycji tylko jeden typ liczbowy. Liczby traktowane są wg standardu IEEE 754 dla liczb zmiennoprzecinkowych podwójnej precyzji.

Różne sposoby zapisu liczb

W poniższym przykładzie pokazujemy, jak zadeklarować liczby w różnym zapisie:

var x = 12       // Liczba całkowita
var y = 3.1415   // Liczba rzeczywista
var z = 12e5     // Liczba 1200000
var u = 12e-5    // Liczba 0.00012

Zapis wyniku 12e5 oznacza liczbę 12 pomnożoną przez 105 (to 12 z pięcioma zerami), natomiast 12e-5 liczbę 12 pomnożoną przez 10-5 (ostatnia cyfra jest na piątym miejscu po przecinku).

Liczba zapisana jest w 64 bitach w następujący sposób:

Bity 0-51 - liczba,
Bity 52-62 - wykładnik,
Bit 63 - znak liczby.

Precyzja zapisu

Liczby całkowite są zapisywane z precyzją do 15 cyfr. Co to oznacza? Zobacz poniższy przykład. W drugim przypadku JavaScript dokonuje konwersji liczby.

Kod

<script>
alert(999999999999999);
alert(9999999999999999);		
</script>
Lupa


Maksymalna liczba miejsc po przecinku wynosi 17, jednakże podczas wykonywania działań na takich liczbach nie możemy mieć pewności takiej precyzji.

Niestety podczas wykonywania obliczeń możemy natknąć się na niemiłą niespodziankę, związaną z precyzją liczb w JavaScript. Oto przykład:

Kod

<script>
alert(3*15);     //wyświetla 45
alert(1.12*5);	//wyświetla 5.6000000000000005	
</script>
Lupa


Trzeba o tym pamiętać podczas pisania programów, szczególnie, gdy wymagana jest odpowiednia precyzja obliczeń.

Później pokażemy jak sobie radzić z tym problemem. Póki co, pokażę małą sztuczkę:

Kod

<script>
alert((1.12*5*100)/100);	    //wyświetla 5.6	
</script>
Lupa


Zapis liczb w systemie szesnastkowym i ósemkowym

JavaScript pozwala zapisywać liczby w systemie szesnastkowym. Zapis takiej liczby rozpoczynamy od 0x lub 0X, po czym zapisujemy liczbę z pomocą znaków 0-9a-fA-F.

Przykład Przykład

0x0, 0X2, 0xFFFF, -0xAC

Aby używać systemu ósemkowego, liczbę zapisaną za pomocą cyfr 0-7 poprzedzamy cyfrą 0. Uwaga: Ścisła specyfikacja nie zawiera reprezentacji tego systemu, a i nie wszystkie przeglądarki sobie z nią radzą. Radzę zatem unikać systemu ósemkowego.

Nieskończoność - Infinity

Nieskończoność lub minus nieskończoność (Infinity, -Infinity) jest specjalnym typem liczbowym (Number). JavaScript zwraca tę wartość, gdy wynik obliczeń wybiega poza zakres możliwej do przechowania w systemie liczby lub gdy wykonywane jest dzielenie przez zero.

Kod

<script>
alert(10/0);	    //wyświetla Infinity	
alert(-10/0);	    //wyświetla -Infinity	
</script>
Lupa


NaN - Not a Number

Ta wartość oznacza, że operacja matematyczna przeprowadzana jest na niewłaściwych danych, takich jak string lub undefined. NaN jest zarezerwowanym słowem na tę okoliczność. Nieco więcej opowiem przy okazji opisu funkcji isNaN.

Kod

<script>
alert('ala' / 5);	    //wyświetla NaN	
</script>
Lupa


Liczba jako obiekt

Liczbę można zadeklarować jako obiekt, jednak zdecydowanie nie polecam tej metody z uwagi na znaczne spowolnienie działań programu z takimi deklaracjami. Poza tym zapis taki niepotrzebnie komplikuje kod. Jeżeli jednak jest potrzeba takiej deklaracji, wykonujemy ją tak:

<script>
var x = new Number(2);	    // powstała zmienna obiektowa x z wartością 2
var y = 2;	    			// powstała zmienna y z wartością 2
</script>

Typy zmiennych x i y w powyższym kodzie są różne.

Typ tekstowy - String

Jest to typ zmiennej, która zawiera tekst - ciąg znaków. Wartość ciągu może być łańcuchem zero lub więcej znaków Unicode (liter, cyfr i znaków interpunkcyjnych). Tekst należy ujmować w apostrofy ('...') lub cudzysłowy ("..."). Podwójne znaki cudzysłowu mogą być zawarte w ciągach znaków objętych pojedynczymi znakami cudzysłowu, a znaki pojedynczego cudzysłowu mogą być zawarte w ciągach znaków, ujętych w podwójny cudzysłów.

var s = "Janek";
var c = 'Bolek';
var n = "I'am a student";
var m = 'Lubię "Gwiezdne Wojny"';

Znaki specjalne

Czasem konieczne jest stosowanie specjalnych sekwencji, które zostały zawarte w poniższej tabeli:

Sekwencja Znaczenie
\b Backspace
\t Tabulacja
\n Nowy wiersz
\r Powrót karetki
\f Kanał formularza
\" Cudzysłów
\' Apostrof
\\ Ukośnik odwrotny

Typ logiczny - Boolean

Jest to typ zmiennej, która może przyjmować tylko dwie wartości: True - prawda i False - fałsz. Ten typ będzie z pewnością bardzo często przez ciebie wykorzystywany, szczególnie w instrukcjach warunkowych.

Typ null

Jest to typ danych, który ma tylko jedną wartość - null, czyli nic, pusty.

Przypisanie wartości null zmiennej powoduje wymazanie jej wartości.

Null nie oznacza wartości zero, co jest dość istotne, jeżeli jesteś przyzwyczajony do języka C, C++.

Typ undefined

Typ ten jest zwracany w przypadku odwoływania się do właściwości nieistniejącego obiektu, a także w przypadku, gdy odwołujemy się do zmiennej, której nie przypisano wartości, tak jak to widać w poniższym kodzie.

Kod

<script>
var a;
alert(a);	    //wyświetla Undefined
</script>
Lupa



© Media Nauka, 2016-11-01, ART-3236