Każdy język programowania (JavaScript nie jest tu wyjątkiem) pozwala na wykonywanie różnych obliczeń. Zapisuje się je stosując typowe symbole matematyczne, np. można obliczyć wartość wyrażenia (1 + 2) * (3 + 4)
:
document.write( (1 + 2) * (3 + 4) );
W wyniku wykonania tego skryptu na stronie powinien pojawić się obliczony wynik, czyli liczba 21.
W obliczeniach można stosować wiele różnych operatorów – omówię je wszystkie w kolejnych lekcjach kursu, rozpoczynając od lekcji Operatory arytmetyczne w JavaScript. Na razie wspomnę tylko że m.in. można korzystać z dodawania (+
), odejmowania (-
), mnożenia (*
) i dzielenia (/
). W razie potrzeby można także stosować nawiasy okrągłe (( )
) do określania kolejności wykonywania działań. Należy pamiętać o tym, że jeżeli chcesz zagnieździć wyrażenia w nawiasach, zawsze należy stosować nawiasy okrągłe (nawiasy kwadratowe i klamrowe są zarezerwowane do innych celów, ale o tym później).
Rodzaje liczb
Liczby w wyrażeniach mogą to być liczby całkowite, bądź liczby zmiennoprzecinkowe (rzeczywiste). Te drugie zapisujemy oddzielając część ułamkową od całkowitej za pomocą kropki, np. 3.1415
. Możliwy jest także zapis tzw. naukowy, w którym można podać dodatkowo wykładnik. Oddziela się go od liczby za pomocą małej literki „e
„. Jest on użyteczny zwłaszcza przy zapisie bardzo małych albo bardzo dużych liczb. W tym zapisie liczba 1.234*1033 będzie zapisana jako 1.234e33
.
W przypadku liczb całkowitych istnieje możliwość zapisu liczb w systemach dziesiętnym (to jest system domyślny), ósemkowym oraz szesnastkowym. Dla tych co jakoś nie mogą sobie przypomnieć odpowiedniej lekcji z matematyki, podaję krótką ściągawkę:
System dziesiętny: 12310 = 1*102 + 2*101 + 3*100 = 1*100 + 2*10 + 3*1 = 12310
System ósemkowy: 1238 = 1*82 + 2*81 + 3*80 = 1*64 + 2*8 + 3*1 = 8310
System szesnastkowy: 12316 = 1*162 + 2*161 + 3*160 = 1*256 + 2*16 + 3*1 = 29110
Dodatkowe informacje: w systemie dziesiętnym używa się dziesięciu cyfr (od 0 do 9). W systemie ósemkowym używa się ośmiu cyfr (od 0 do 7). W systemie szesnastkowym natomiast używa się szesnastu „cyfr”: są to cyfry od 0 do 9, oraz litery od A do F (A = 10, B = 11, C = 12, D = 13, E = 14, F = 15). Wielkość liter nie ma znaczenia.
System ósemkowy ma małe zastosowanie praktyczne – poza różnymi materiałami szkoleniowymi i kursami (takimi jak ten), używa się ich jedynie do określania praw dostępu do plików i katalogów w systemach Unix’owych. Z kolei system szesnastkowy jest stosowany bardzo często, z dwóch podstawowych powodów: pozwala on na zapisanie wartości jednego bajtu (8 bitów, wartości od 0 do 255) stosując dwa znaki (i są one wykorzystane w pełni, tzn. nie ma sytuacji jak w systemie dziesiętnym, gdzie stosując trzy znaki pozostałyby niewykorzystane wartości od 256 do 999), oraz bardzo ładnie daje się przeliczać na system binarny (inaczej dwójkowy) i odwrotnie – każda cyfra do dokładne 4 bity.
Wartości ósemkowe zapisuje się poprzedzając je zawsze dodatkową cyfrą zero (0
), natomiast wartości szesnastkowe zawsze poprzedza się dwoma znakami „0x
„. Zatem podane powyżej równości można byłoby zapisać następująco:
0123 = 83
0x123 = 291
Zmienne
Sytuacja taka jak w pierwszym przykładzie na tej stronie (wyliczoną wartość tylko należy wyświetlić i można o niej już zapomnieć) nie jest jedyną możliwą. Często potrzeba przechować wyniki obliczeń (czy też inne wartości) w celu późniejszego ich wykorzystania. Czasami też jest to pożądane w celu uproszczenia obliczeń – lepiej wyliczyć coś raz i zapisać wynik, niż liczyć kilka razy.
Język JavaScript posiada specjalny mechanizm służący do zapamiętywania wartości do późniejszego wykorzystania, a mianowicie zmienne. Możesz je traktować jako nazwane „schowki” w których możesz umieścić dowolną, pojedynczą wartość (próba umieszczenia tam innej wartości spowoduje usunięcie poprzedniej).
Każda nazwa zmiennej musi spełniać określone reguły: pierwszym znakiem może być tylko literą (z zestawu łacińskich liter, czyli bez polskich „krzaczków”), lub znakiem podkreślenia (_
). Kolejne znaki mogą być literami łacińskimi, cyframi lub znakiem podkreślenia. Jest też dodatkowe ograniczenie – nazwy zmiennych nie mogą być żadnym zarezerwowanym słowem kluczowym. Poniżej znajdziesz kilka przykładów poprawnych i niepoprawnych nazw zmiennych:
- abc – poprawna;
- Moja_Zmienna_5 – poprawna;
- __test__ – poprawna;
- 5test – niepoprawna (cyfra na początku);
- ilość – niepoprawna (polskie znaki w nazwie);
- moja%zmienna – niepoprawna (znak procentu jest niedozwolony);
- for – niepoprawna (zarezerwowane słowo kluczowe).
Warto także pamiętać, że wielkość znaków w nazwach zmiennych ma znaczenie (zmienna, Zmienna i ZmIeNnA to trzy różne zmienne).
Przed pierwszym użyciem warto zmienne zadeklarować korzystając ze słowa kluczowego var
:
var suma; var ilosc;
Można także zadeklarować więcej zmiennych na raz, rozdzielając je przecinkami:
var suma, ilosc;
Tak zadeklarowane zmienne nie posiadają przypisanej wartości (a dokładniej, posiadają specjalną wartość undefined
– niezdefiniowana). W tym celu zmienną należy zainicjalizować. Robi się to poprzez przypisanie jej wartości w momencie deklaracji, lub później. W obydwóch przypadkach wykorzystuje się do tego celu znak równości:
var n1 = 1, n2 = 2; var suma; suma = n1 + n2 + 4;
Podany powyżej sposób deklarowania zmiennych przed użyciem nie jest obowiązkowy – można z niego zrezygnować, i przeglądarka i tak sobie poradzi z wykryciem że zamierzasz użyć nowej zmiennej. Polecam jednak deklarować zmienne z tego powodu, że tak napisany kod skryptu łatwiej się później analizuje.
Komentarze