JavaScript/Operatory
Operatory jednoargumentowe
edytujOperatory jednoargumentowe wpływają na wartość lub typ zmiennej, do której są stosowane.
Jednoargumentowy operator +
edytujOperator + na typach Number działa podobnie jak w matematyce
var liczba=255;
liczba = +liczba; //przypisanie wartości, operator nie wpływa na wynik operacji
W przypadku operacji na typie Boolean, operator + powoduje konwersję do typu Number:
var prawda=true;
prawda = +prawda; //konwersja na typ Number, sprawdźmy:
alert(typeof prawda); //wyświetla number
alert(prawda); //wyświetla 1
Podobnie zachowuje się operator + na typie String:
var lancuch="0x24";
lancuch= +lancuch //konwersja na typ Number, sprawdźmy:
alert(typeof(lancuch)); //wyświetla number
alert(lancuch); //wyświetla 36
Często w aplikacjach webowych wykorzystujemy zamianę zmiennej typu String na Number. Najczęściej wykorzystujemy do tego funkcję ParseInt
var liczba="12345";
alert(liczba+5); // wyswietli 123455 bo operujemy na liczbie i tekscie
liczba=parseInt(liczba,10);
alert(liczba+5); // wyswietli 12350 bo operujemy na dwoch liczbach
Jednak jeśli zależy nam na prędkości wykonania (mamy dużo operacji zmieniania typu), a jednocześnie wiemy, że dana zmienna jest w całości liczbą (np. "1324ada" już nie spełnia tego warunku) to najlepiej skorzystać właśnie z operacji jedno argumentowego operatora +
Jednoargumentowy operator -
edytujOperator - na typach Number, zachowuje się tak samo jak w matematyce:
var liczba=255;
liczba = -liczba; //przypisanie wartości i zmiana znaku, sprawdźmy:
alert(liczba); //wyświetla -255
liczba = -liczba //ponownie przypisujemy wartość ze zmienionym znakiem
alert(liczba); //wyświetla 255
Operator - dla typów boolean i string zachowuje się tak samo jak operator +, z tą różnicą, iż zostaje zmieniony znak liczby na przeciwny:
var lancuch="0x24";
var prawda=true;
lancuch= -lancuch;
prawda= -prawda;
alert(lancuch); //wyświetla -36
alert(prawda); //wyświetla -1
Operator inkrementacji (++)
edytujOperator inkrementacji służy do zwiększenia o 1 wartości zmiennej. Występuje w dwóch wersjach:
- ++zmienna - pre-inkrementacja zwiększa o 1 wartość zmiennej, zanim wartość zmiennej zostanie dalej użyta.
- zmienna++ - post-inkrementacja zwiększa o 1 wartość zmiennej, po użyciu wartości zmiennej
Przykład:
var liczba = 1, wynik1,wynik2,wynik3;
wynik1=liczba++; //post-inkrementacja, wynik1 ma wartość 1, po tej operacji liczba ma wartość 2
wynik2=++liczba; //pre-inkrementacja, liczba ma wartość 2+1=3, wynik2 ma wartość
//taką samą co liczba, czyli 3
Operator dekrementacji (--)
edytujOperator dekrementacji służy do zmniejszenia o 1 wartości zmiennej i podobnie jak operator inkrementacji posiada dwie formy:
- --zmienna - pre-dekrementacja zmniejsza o 1 wartość zmiennej, zanim wartość zmiennej zostanie dalej użyta.
- zmienna-- - post-dekrementacja zmniejsza o 1 wartość zmiennej, po użyciu wartości zmiennej
Działanie post i pre-dekrementacji jest takie samo jak operatora inkrementacji.
Działania operatorowe pre-inkrementacji jak i pre-dekrementacji, na typach Boolean oraz String, konwertują zmienne na typ Number oraz działają :
var falsz=false, lancuch="0x24";
lancuch=++lancuch;
falsz=--falsz;
alert(lancuch) //wyświetla 37
alert(falsz); //wyświetla -1
Operatory post-inkrementacji i post-dekrementacji na typach Boolean oraz String działają tak samo jak operator jedno argumentowy + |
Operator negacji bitowej (~)
edytujNegacja bitowa, w JavaScripcie ma taki sam efekt działania jak w innych językach programowania (porównaj C).
W przygotowaniu: Ładny przykład |
Operator negacji logicznej (!)
edytujNegacja logiczna, zamienia wartość zmiennej na typ Boolean o wartości przeciwnej niż Booleanowy odpowiednik:
var liczba=0,liczba2=1 lancuch="hello", lancuch2="", prawda=true;
alert(!liczba); //wyświetla true
alert(!liczba2); //wyświetla false
alert(!lancuch); //wyświetla false
alert(!lancuch2); //wyświetla true
alert(!prawda); //wyświetla false
Operatory wieloargumentowe
edytujOperatory bitowe
edytujOperatory bitowe działają na bitach liczby całkowitej, przykładem operatora bitowego był wcześniej poznany operator negacji bitowej. Z uwagi na małą popularność operatorów bitowych, przedstawiamy je w poniższej tabeli.
Znak operatora | Krótki opis | Przykład wyrażenia | Otrzymywana wartość |
---|---|---|---|
& | koniunkcja | 2 & 5 | 0 |
| | alternatywa | 2 | 5 | 7 |
^ | alternatywa wykluczająca | 2^7 | 5 |
<< | przesunięcie w lewo | 2<<7 | 256 |
>> | przesunięcie w prawo | 2>>1 | 1 |
>>> | przesunięcie w prawo razem z bitem znaku | -2222>>>1 | 2147482537 |
Operatory logiczne
edytujOperatory logiczne działają na zmiennych typu Boolean. Jeżeli argumenty są innymi typami, zostają skonwertowane do tego typu. Poznany wcześnie operator negacji logicznej jest jednym z operatorów logicznych, pozostałe to operator koniunkcji i alternatywy logicznej.
Operator koniunkcji logicznej (&&)
edytujWyniki działania operatora && są przedstawione w poniższej tabeli:
Wyrażenie | Otrzymana wartość |
---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Operator alternatywy logicznej (||)
edytujWyniki działania operatora || są przedstawione w poniższej tabeli:
Wyrażenie | Otrzymana wartość |
---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Operatory arytmetyczne
edytujOperatory arytmetyczne maję zastosowanie w wyrażeniach arytmetycznych na zmiennych i liczbach.
Podstawiając pod zmienną x = 7 prezentujemy w poniższej tabeli rezultat działania operatorów:
Znak operatora | Krótki opis | Przykład wyrażenia | Otrzymywana wartość |
---|---|---|---|
+ | dodawanie | x+5 | 12 |
- | odejmowanie | x-5 | 2 |
* | mnożenie | x*2 | 14 |
/ | dzielenie | x/2 | 3.5 |
% | modulo (reszta z dzielenia) | x%3 | 1 |
Operatory arytmetyczne jednoargumentowe (opisane wyżej operatory inkrementacji i dekrementacji)
Znak operatora | Krótki opis | Przykład wyrażenia | Otrzymywana wartość | Uwagi |
---|---|---|---|---|
++ | inkrementacja | y=++x | y=8 x=8 | wartość x zmieniana przed podstawieniem |
y=x++ | y=7 x=8 | wartość x zmieniana po podstawieniu | ||
-- | dekrementacja | y=--x | y=6 x=6 | wartość x zmieniana przed podstawieniem |
y=x-- | y=7 x=6 | wartość x zmieniana po podstawienu |
Operator przypisania
edytujOpereatory przypisania mają zastosowanie do nadanie wartości zmiennym. Podstawowym operatorem jest znak "=". Pozostałe operatory są złażone ze znaku operatora arytmetycznego i znaku "=". Realizują one operację arytmetyczną na zmiennych z lewej i prawej strony operatora, przypisując wynik zmiennej z lewej strony. Są to operatory: "+=", "-=", "/=" i "%=".
Poniższa tabela przedstawia wyniki działania operatorów dal wartości zmiennych x=5 i y=2:
Znak operatora | Przykład | odpowiada wyrażeniu | Wynik działania |
---|---|---|---|
= | x=y | x=5 | |
+= | x+=y | x=x+y | x=7 |
-= | x-=y | x=x-y | x=3 |
/= | x/=y | x=x/y | x=2.5 |
%= | x%=y | x=x%y | x=1 |
Operatory porównania
edytujOperator porównania porównuje dwie wartości z lewej oraz prawej strony operatora i zwraca wartość true (prawda), jeśli warunek jest spełniony, jeśli nie jest spełniony zwraca false (fałsz).
Znak operatora | Opis | Przykład | Wynik |
---|---|---|---|
== | równa się | 5==5 | true |
5==8 | false | ||
!= | nie równa się | 5!=5 | false |
5!=8 | true | ||
< | mniejsze | 5<5 | false |
5<8 | true | ||
<= | mniejsze lub równe | 5<=5 | true |
5<=8 | true | ||
> | większe | 5>5 | false |
5>8 | false | ||
>= | więsze lub równe | 5>=5 | true |
5>=8 | false |