Operatory

Operatory, ah operatory. Znamy je z matematyki. Gdy napiszesz 4 + 5, znak + to właśnie operator. 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
% Reszta z dzielenia x = y % 2 y = 5 x = 1
++ 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

x = 5;
y = x + 2; //y = 7
y = x - 1; //y = 4
y = x * 3; //y = 15
y = x / 2; //y = 2.5
y = x % 2; //1 bo % oznacza resztę z dzielenia
x--; //to to samo co x = x - 1
x++; //to to samo co x = x + 1
y = x-- //y = 4, x = 5
y = --x //y = 5, x = 4

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 linijce. Jeżeli występuje po zmiennej, zwiększona wartość wystąpi dopiero w następnej linii:


let i = 3;

console.log(++i); //4

let j = 3;
console.log(j++); //3
console.log(j); //4

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;

Operatory Porównania

Operatory logiczne stosuje się w instrukcjach warunkowych. Służą one do porównywania lewej strony równania do prawej.

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

const 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
}

Operatory Logiczne

Za pomocą operatorów logicznych 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

const myVar = 8;
const 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

Poniżej zamieszczam kilka zadań, które w ramach ćwiczenia możesz wykonać:

  1. Hej. Z operatorów będziesz tak czy siak non stop korzystał.
    Dla potrenowania zrób zmienne:
    
                let var1 = 20;
                let var2 = 33;
                let var3 = "20";
            
  2. Zwiększ zmienną var1 i var2 o 1. Spróbuj użyć skróconego zapisu.
    Wypisz następnie w konsoli:
    21 + 34 = 55 (oczywiście nie z palca, a z użyciem zmiennych)
    
                let var1 = 20;
                let var2 = 33;
                let var3 = "20";
    
                var1++;
                var2++;
    
                console.log(var1 + "+" + var2 + "=" + (var1 + var2));
                
  3. Przyrównaj do siebie var1 i var3.
    Jeżeli są takie same, wypisz w konsoli "Zmienne var1 i var2 są takie same",
    w przeciwnym razie wypisz "Zmienne var1 i var3 nie są takie same"
    
                if (var1 === var2) {
                    console.log("Zmienne var1 i var2 są takie same");
                } else {
                    console.log("Zmienne var1 i var3 nie są takie same");
                }
                
  4. Stwórz zmienną text z jedną linijką tekstu.
    Dodaj do niej kilka linijek tekstu. Użyj odpowiedniego operatora przypisania. Całość wyświetl w konsoli.
    
                let text = "";
                text += "linijka tekstu";
                text += "kolejna linijka tekstu";
    
                console.log(text);