JavaScript/Operatory

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łaśnie 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

Operator negacji bitowej (~)

Negacja bitowa, w JavaScripcie ma taki sam efekt działania jak w innych językach programowania (porównaj C).

Operator negacji logicznej (!)

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 operatoraKrótki opisPrzykład wyrażeniaOtrzymywana wartość
& koniunkcja2 & 50
|alternatywa2 | 57
^alternatywa wykluczająca 2^75
<<przesunięcie w lewo2<<7256
>>przesunięcie w prawo2>>11
>>>przesunięcie w prawo razem z bitem znaku-2222>>>12147482537

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żenieOtrzymana wartość
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse

Operator alternatywy logicznej (||)

Wyniki działania operatora || są przedstawione w poniższej tabeli:

WyrażenieOtrzymana wartość
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse

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 operatoraKrótki opisPrzykład wyrażeniaOtrzymywana wartość
+ dodawaniex+512
-odejmowaniex-52
*mnożeniex*214
/dzieleniex/23.5
%modulo (reszta z dzielenia)x%31

Operatory arytmetyczne jednoargumentowe (opisane wyżej operatory inkrementacji i dekrementacji)

Znak operatoraKrótki opisPrzykład wyrażeniaOtrzymywana wartość Uwagi
++inkrementacjay=++xy=8 x=8wartość x zmieniana przed podstawieniem
y=x++y=7 x=8wartość x zmieniana po podstawieniu
--dekrementacjay=--xy=6 x=6wartość x zmieniana przed podstawieniem
y=x--y=7 x=6wartość 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 operatoraPrzykładodpowiada wyrażeniuWynik działania
=x=yx=5
+=x+=yx=x+yx=7
-=x-=yx=x-yx=3
/=x/=yx=x/yx=2.5
%=x%=yx=x%yx=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 operatoraOpisPrzykładWynik
==równa się5==5true
5==8false
!=nie równa się5!=5false
5!=8true
<mniejsze5<5false
5<8true
<=mniejsze lub równe5<=5true
5<=8true
>większe5>5false
5>8false
>=więsze lub równe5>=5true
5>=8false

Pozostałe operatory

Operatory specjalne