Operatory

Operatory, ah operatory. Gdy napiszesz 4 + 5, znak + to właśnie operator, a 4 i 5 to tak zwane operandy.

Większość z nich znamy z matematyki, dlatego dział ten będzie dość skrótowy.

Poniżej zamieszczam przykłady dla y = 5

Operator Nazwa działania Równanie Wynik
+ Dodawanie x = y + 2 y = 5 x = 7
- Odejmowanie x = y - 2 y = 5 x = 3
* Mnożenie x = y * 2 y = 5 x = 10
/ Dzielenie x = y / 2 y = 5 x = 2.5
% Modulo* czyli reszta z dzielenia x = y % 2 y = 5 x = 1
** Potęgowanie (to samo co Math.pow()) x = y ** y y = 5 x = 3125
++ Inkrementacja x = ++y y = 6 x = 6
x = y++ y = 6 x = 5
-- Dekrementacja x = --y y = 4 x = 4
x = y-- y = 4 x = 5

* - żeby być bardziej ścisłym, to w Javascript tak naprawdę nie istnieje operator modulo, a remainder. Więcej na ten temat tutaj i tutaj. Traktuj to raczej jako ciekawostkę.


let x = 5;

console.log(x + 2); //7
console.log(x - 1); //4
console.log(x * 3); //15
console.log(x / 2); //2.5
console.log(x % 2); //1
console.log(x**3); //125

let y = 24;
if (y % 2 === 0) {
    console.log(`Liczba ${y} jest parzysta`);
}

Zwróć uwagę na operator inkrementacji, który może występować przed zmienną lub po zmiennej.

Gdy występuje przed zmienną, zwiększenie jej wartości nastąpi w danej instrukcji. Jeżeli występuje po zmiennej, zwiększona wartość wystąpi dopiero w kolejnej instrukcji.


let x = 5;
console.log(x--); //5
console.log(x); //4

let y = 5;
if (y-- < 5) {
    //nie wypisze się
}

let x = 5;
console.log(--x); //4
console.log(x); //4

let y = 5;
if (--y < 5) {
    //wypisze się
}

Operatory Przypisania

Czyli operatory, które służą do przypisania do zmiennej jakiejś wartości, pola, obiektu itp.
Poniżej zamieszczamy przykłady dla x = 10 i y = 5:

Operator Przykład Równoznaczne z Wynik
= x = y x = y x = 5
+= x += y x = x + y x = 15
-= x -= y x = x - y x = 5
*= x *= y x = x * y x = 50
/= x /= y x = x / y x = 2
%= x %= y x = x % y x = 0

let myVar =  "Przykładowy tekst";
    myVar += " który nie";
    myVar += " zmieścił by się w jednej linijce";

let x = 10;
x += 5; //15

Operatory Porównania

Operatory logiczne stosuje się w instrukcjach warunkowych. Służą one do porównywania lewej strony równania do prawej, w wyniku której zawsze zwracana jest true/false.

Poniżej zamieszczam przykłady dla x = 5

Operator Opis Równanie Zwróci
== równe x == 8 false
!= różne x != 8 true
=== równa wartość i taki sam typ danychW naszym przykładzie x to numer, a 5 po prawej stronie jest tekstem x === 5 true
x === "5" false
!== różne wartości lub różny typ danychW naszym przykładzie x to numer, a 5 po prawej stronie jest tekstem x !== "5" true
x !== 5 false
> większe od x > 8 false
< mniejsze od x < 8 true
>= większe bądź równe od x >= 8 false
<= mniejsze bądź równe od x <= 8 true

let myVar = 8;

if (myVar === 10) {
    //ten kawałek kodu się nie wykona
}

if (myVar <= 10) {
    //ten kawałek kodu się wykona
}

if (myVar !== 8) {
    //ten kawałek kodu się nie wykona
}

Więcej na ten temat dowiemy się podczas stosowania instrukcji warunkowych.

Operatory Logiczne

Są one także stosowane w instrukcjach warunkowych. Za ich pomocą możemy łączyć kilka porównań w jedną całość. Poniżej przykłady dla x = 6 i y = 3:

Operator Opis Przykład Wynik
&& and (i) (x < 10 && y > 1) Prawda, bo x jest mniejsze od 10 i y jest większe od 1
|| or (lub) (x > 8 || y > 1) Prawda, bo x nie jest większe od 8, ale y jest większe od 1
^ xor (jeden z, ale nie dwa równocześnie) (x === 6 ^ y === 3) Fałsz, bo obydwa są prawdziwe
! not (negacja) !(x === y) Prawda, bo negujemy to, że x === y

let myVar = 8;
let myVar2 = 15;

if (myVar === 8 && myVar2 === 10) {
    //ten kawałek kodu się nie wykona bo mamy "i", oba muszą być spełnione, a nie są
}

if (myVar === 8 || myVar2 === 8) {
    //ten kawałek się wykona bo mamy "lub" - jeden z warunków jest poprawny
}

if (myVar === 8 ^ myVar2 === 15) {
    //ten kawałek się nie wykona bo mamy "xor", a oba są spełnione
}

if (!(myVar === 8)) {
    //ten kawałek się nie wykona, bo mamy negację!
    //powyższy warunek jest jednoznaczny z myVar !== 8
}

if ((myVar === 2) || 1) {
    //ten kawałek zawsze się wykona, bo myVar nie jest 2,
    //ale drugi fragment warunku zawsze zwróci true (1 jest rzutowana na true)
}

Trening czyni mistrza

Jeżeli chcesz sobie potrenować zdobytą wiedzę z tego działu, to zadania znajdują się w repozytorium pod adresem: https://github.com/kartofelek007/zadania-podstawy

W repozytorium jest branch "solutions". Tam znajdziesz przykładowe rozwiązania.

Wszelkie prawa zastrzeżone. Jeżeli chcesz używać jakiejś części tego kursu, skontaktuj się z autorem. Aha - i ta strona korzysta z ciasteczek.

Menu