JavaScript  

 

w przykładach                

http://javascript.jest.o.k.pl

Podstawy JS, cz. 4: Co można robić ze zmiennymi?
4.1 Operatory

Operatory to według definicji polecenia przetwarzjące zmienną lub zmienne (najczęściej dwie) i zwracające wynik. Tak więc operatory w językach programowania mają dokładnie taką samą rolę jak w matematyce. Jeśli jednak dla kogoś nie jest to jasne radzę po prostu przyjrzeć się przykładom.

4.1.1 Binarne operatory arytmetyczne

To chyba najbardziej oczywiste operatory. Ale na wypadek, gdyby ktoś ich nie znał, oto krótka tabelka:

Operator Opis
+ dodawanie
- odejmowanie
* mnożenie
/ dzielenie
% dzielenie modulo

Może tylko ten ostatni wymaga wyjaśnienia. Jest to nic innego, jak reszta z dzielenia pierwszej liczby przez drugą. Te operatory stosuje się dokładnie tak jak na co dzień:

wynik = liczba operator liczba                                        

[ Powrót na górę ]

4.1.2 Unarne operatory arytmetyczne

Różnią się one tym od poprzednich, że działanie wykonywane jest na jednej tylko liczbie (stąd unarne). Są to:

4.1.2.1 Inkrementowanie i dekrementowanie

Pod tymi tajemniczymi nazwami kryją się odpowiednio zwiększanie i zmniejszanie zmiennej o 1. Inkrementacja wygląda następująco:

zmienna++                                                             

Jest to równoważne takim dwóm zapisom (o drugim będzie mowa później):

zmienna = zmienna + 1                                                 
zmienna += 1                                                          

Można tego operatora używać też w przypisaniach:

zmienna1 = zmienna2++                                                 
zmienna1 = ++zmienna2                                                 

Uwaga! Te dwa zapisy oznaczją dwie różne rzeczy! W pierwszym przypadku najpierw nastąpi przypisanie, a dopiero potem inkrementacja, a w drugim - odwrotnie. Jeśli komuś wydaje się to mylące, zawsze można pisać:

/* pierwsza sytuacja: */                                              
                                                                      
zmienna1 = zmienna2;                                                  
zmienna2++;                                                           
                                                                      
/* druga sytuacja: */                                                 
                                                                      
zmienna2++;                                                           
zmienna1 = zmienna2;                                                  

Dekrementacją rządzą takie same zasady, trzeba tylko zamienić "++" na "--".

[ Powrót na górę ]

4.1.2.2 Negacja

Negację oznacza "-". Zmienia on po prostu znak wyrażenia z ujemnego na dodatni albo odwrotnie. Nic odkrywczego, prawda? Przykład:

-zmienna                                                              

[ Powrót na górę ]

4.1.3 Operatory przypisania

Najprostszy z nich został juz opisany. Jest to "=". Ale istnieją też inne operatory przypisania będące w zasadzie tylko skrótami: "+=", "-=" itd. Łączą one w sobie przypisanie i proste działanie arytmetyczne. Oto wyjaśnienie:

Przypisanie Równoważne przypisanie
a += b a = a + b
a -= b a = a - b
a *= b a = a * b
a /= b a = a / b
a %= b a = a % b

[ Powrót na górę ]

4.1.4 Operatory porównania

Są to wyrażenia typu większe od, równe itd. Wszystko powinna wyjaśnić kolejna tableka:

Operator Opis
== równa się
!= różne od
> większe od
< mniejsze od
>= niemniejsze od
<= niewiększe od

[ Powrót na górę ]

4.1.5 Operatory logiczne

Zapewne i te operatory nie są obce wszystkim tym, którzy znają podstawy matematyki. Są to "i", "albo" oraz "nie", które w JS zapisuje się jako: "&&", "||" oraz "!". Oto kilka przykładów konstrukcji logicznych (litery oznaczją tu dowolne wyrażenia, którym można przyporządkować wartości true albo false):

! ((p || q) && r)                                                     
((p && q) || !(r || s)) && t                                          
być || !być                                                           

Uwaga! Prawa autorskie do ostatniego z przykładów należą do pewnego angielskiego dramaturga :).

[ Powrót na górę ]

4.1.6 Operatory znakowe

Na łańcuchach znakowych także można wykonywać operacje. Jednak nie mają tu sensu np. odejmowanie albo mnożenie. Z operatorów arytmetycznych można stosować tylko "+" (była już o tym mowa, ale dla przypomnienia: jest to sklejenie dwóch stringów). Jeśli chodzi o porównania, ma tu sens tylko proste porównanie ("=="), trudno byłoby np. określić, który łańcuch znakowy jest większy (uwaga: można jednak porównywać długość łańcuchów - MójString.length, gdyż jest to zwykła liczba całkowita).

Co jednak się stanie, gdy spróbujemy wykonywać działania na stringach tak jak na liczbach? Otóż zostanie wtedy podjęta próba zamiany stringów na liczby i jeśli się ona powiedzie działanie zostanie wykonanie. Jednak jeśli taka konwersja nie będzie możliwa (jak np. z "trzysta"), otrzymamy komunikat o błędzie.

[ Powrót na górę ]

4.2 Wyrażenie warunkowe

Jest to dosyć specyficzne wyrażenie, związane ściśle z operatorami logicznymi i przypisania. Pozwala ono na uzależnienie przypisywanej wartości od spełnienia jakiegoś warunku. Ma ono następującą postać:

zmienna = (warunek) ? wartość_prawda : wartość_fałsz                  

Jeśli warunek jest spełniony, zmiennej przypisana zostanie wartość_prawda, jeśli nie - wartość_fałsz. Oto przykładowe użycie:

CenaZaSztuke = (ZamowionaLiczba > 60) ? 19.99 : 17.99                 

To samo można zapisać za pomocą instrukcji warunkowej if ... else ...:

if (ZamowionaLiczna > 60)                                             
     CenaZaSztuke = 19.99                                             
else                                                                  
     CenaZaSztuke = 17.99                                             

Nie warto jednak używać wyrażenia warunkowego, jeśli chcemy jakiejś zmiennej przypisać prawdę albo fałsz. Wtedy wygodnej napisać coś takiego:

RabatuUdzielono = (CenaZaSztuke > 60)                                 

[ Powrót na górę ]

 


Valid HTML 4.0!

© 1998-2000 Maciej Szczepaniak