JavaScript/Operatory

Z Wikibooks, biblioteki wolnych podręczników.

Spis treści

[edytuj] Operatory jednoargumentowe

Operatory jednoargumentowe wpływają na wartość lub typ zmiennej, do której są stosowane.

[edytuj] 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 +

[edytuj] 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

[edytuj] 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

[edytuj] 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(lanuch) //wyświetla 37
alert(falsz); //wyświetla -1
Porada Operatory post-inkrementacji i post-dekrementacji na typach Boolean oraz String działają tak samo jak operator jedno argumentowy +

[edytuj] Operator negacji bitowej (~)

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

Do zrobienia Do zrobienia:
Ładny przykład

[edytuj] 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

[edytuj] Operatory wieloargumentowe

[edytuj] 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 Wartość otrzymywana
& 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

[edytuj] 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.

[edytuj] 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

[edytuj] 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

[edytuj] Operatory arytmetyczne

[edytuj] Operator przypisania

[edytuj] Operatory porównania

[edytuj] Pozostałe operatory

[edytuj] Operatory specjalne