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
| 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: Ł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 |