Operatory jednoargumentowe wpływają na wartość lub typ zmiennej, do której są stosowane.
Operator+ na typachNumber działa podobnie jak w matematyce
varliczba=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:
varprawda=true;prawda=+prawda;//konwersja na typ Number, sprawdźmy:alert(typeofprawda);//wyświetla numberalert(prawda);//wyświetla 1
Podobnie zachowuje się operator+ na typie String:
varlancuch="0x24";lancuch=+lancuch//konwersja na typ Number, sprawdźmy:alert(typeof(lancuch));//wyświetla numberalert(lancuch);//wyświetla 36
Często w aplikacjach webowych wykorzystujemy zamianę zmiennej typu String na Number. Najczęściej wykorzystujemy do tego funkcję ParseInt
varliczba="12345";alert(liczba+5);// wyswietli 123455 bo operujemy na liczbie i tekscieliczba=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+
Operator- na typach Number, zachowuje się tak samo jak w matematyce:
varliczba=255;liczba=-liczba;//przypisanie wartości i zmiana znaku, sprawdźmy:alert(liczba);//wyświetla -255liczba=-liczba//ponownie przypisujemy wartość ze zmienionym znakiemalert(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:
varlancuch="0x24";varprawda=true;lancuch=-lancuch;prawda=-prawda;alert(lancuch);//wyświetla -36alert(prawda);//wyświetla -1
Operator inkrementacji służy do zwiększenia o 1 wartości zmiennej. Występuje w dwóch wersjach:
Przykład:
varliczba=1,wynik1,wynik2,wynik3;wynik1=liczba++;//post-inkrementacja, wynik1 ma wartość 1, po tej operacji liczba ma wartość 2wynik2=++liczba;//pre-inkrementacja, liczba ma wartość 2+1=3, wynik2 ma wartość//taką samą co liczba, czyli 3
Operator dekrementacji służy do zmniejszenia o 1 wartości zmiennej i podobnie jak operator inkrementacji posiada dwie formy:
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ą :
varfalsz=false,lancuch="0x24";lancuch=++lancuch;falsz=--falsz;alert(lancuch)//wyświetla 37alert(falsz);//wyświetla -1
| Operatory post-inkrementacji i post-dekrementacji na typach Boolean oraz String działają tak samo jak operator jedno argumentowy + |
Negacja bitowa, w JavaScripcie ma taki sam efekt działania jak w innych językach programowania (porównaj C).
| W przygotowaniu: Ładny przykład |
Negacja logiczna, zamienia wartość zmiennej na typ Boolean o wartości przeciwnej niż Booleanowy odpowiednik:
varliczba=0,liczba2=1lancuch="hello",lancuch2="",prawda=true;alert(!liczba);//wyświetla truealert(!liczba2);//wyświetla falsealert(!lancuch);//wyświetla falsealert(!lancuch2);//wyświetla truealert(!prawda);//wyświetla false
Operatory 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 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.
Wyniki 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 |
Wyniki 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 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 |
Opereatory 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 zmiennychx=5 iy=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 |
Operator 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 zwracafalse (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 |