Operatory jednoargumentowe
Operatory jednoargumentowe wpływają na wartość lub typ zmiennej, do której są stosowane.
Jednoargumentowy operator +
Operator + 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łasnie z operacji jedno argumentowego operatora +
Jednoargumentowy operator –
Operator - 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 (++)
Operator 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 (–)
Operator 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 (~)
Negacja bitowa, w JavaScripcie ma taki sam efekt działania jak w innych językach programowania .
Negacja 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
Operatory bitowe
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
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.
Operator koniunkcji 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 |
Operator alternatywy logicznej (||)
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
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 |
Operator przypisania
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 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
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 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 |
Operatory arytmetyczne
| Symbol | Składnia | Opis |
| + | x+y | Wykonuje operację dodawania. |
| – | x-y | Wykonuje operację odejmowania. |
| – | -x | Wykonuje negację zmiennej. |
| % | x%y | Zwraca resztę z dzielenia pierwszej zmiennej przez drugą (dzielenie modulo). |
| * | x*y | Wykonuje operację mnożenia. |
| / | x/y | Wykonuje operację dzielenia. |
Operatory łańcuchowy (konkatencja)
| Symbol | Składnia | Opis |
| + | „text1″+”text2” | Łączy dwa ciągi znaków w jeden. |
Operatory bitowy
| Symbol | Składnia | Opis |
| & | x&y | Wykonuje bitową operację AND, która wyświetla 1, jeśli obie zmienne wynoszą 1. |
| ^ | x^y | Wykonuje bitową operację XOR, która wyświetla 1, jeśli jedna ze zmiennych (ale nie obie jednocześnie) wynosi 1. |
| | | x|y | Wykonuje bitową operację OR, która wyświetla 1, jeśli jedna ze zmiennych wynosi 1. |
| << | x<<y< td=””> | Wykonuje przesunięcie bitów w lewo o podaną ilość miejsc. |
| >> | x>>y | Wykonuje przesunięcie bitów w prawo o podaną ilość miejsc. |
Operatory przypisania
| Symbol | Składnia | Opis |
| = | x=y | Przypisuje wartość y do zmiennej x. |
| += | x+=y | Wykonuje przypisanie x=x+y |
| -= | x-=y | Wykonuje przypisanie x=x-y |
| *= | x*=y | Wykonuje przypisanie x=x*y |
| /= | x/=y | Wykonuje przypisanie x=x/y |
| %= | x%=y | Wykonuje przypisanie x=x%y |
| <= | x<=y | Wykonuje przypisanie x=x<y< td=””> |
| ^= | x^=y | Wykonuje przypisanie x=x^y |
| |= | x|=y | Wykonuje przypisanie x=x|y |
| << | x<<=y | Wykonuje przypisanie x=x<<y< td=””> |
Operatory porównania
| Symbol | Składnia | Opis |
| != | x!=y | Zwraca true, jeśli zmienne nie są równe. |
| < | x<y< td=””> | Zwraca true, jeśli pierwsza zmienna jest mniejsza niż druga. |
| <= | x<=y | Zwraca true, jeśli pierwsza zmienna jest mniejsza niż druga lub jej równa. |
| == | x==y | Zwraca true, jeśli zmienne są równe. |
| > | x>y | Zwraca true, jeśli pierwsza zmienna jest większa niż druga. |
| >= | x>=y | Zwraca true, jeśli pierwsza zmienna jest większa niż druga lub jej równa. |
Operator inkrementacji i dekrementacji
| Symbol | Składnia | Opis |
| ++= | x++ | Zwiększa wartość zmiennej o 1 |
| — | x–<y< td=””> | Zmniejsza wartość zmiennej o 1. |
Operatory logiczne
| Symbol | Składnia | Opis |
| ! | !x | Ten operator logiczny neguje wyrażenie. |
| && | x&&y<y< td=””> | Operator logiczny AND zwraca true, jeśli obie zmienne są prawdziwe (true). |
| || | x||y | Operator logiczny OR zwraca true, jeśli co najmniej jedna ze zmiennych jest prawdziwa (true). |