Operatory
Pisząc nasze skrypty nie raz i nie dwa będziemy wykonywać wiele równań. Część zapisów znamy z lekcji matematyki, natomiast w programowaniu pojawia nam się kilka specyficznych zapisów, które omówimy sobie poniżej.
const x = 5;
//dodawanie, odejmowanie, mnożenie, dzielenie
console.log(x + 2); //7
console.log(x - 1); //4
console.log(x * 3); //15
console.log(x / 2); //2.5
//% - modulo czyli reszta z dzielenia
console.log(x % 2); //1
console.log(9 % 3); //0
//** - potęgowanie
console.log(x ** 2); //25 - równoznaczne z Math.pow(x, 2)
console.log(3 ** 3); //27 - równoznaczne z Math.pow(3, 3)
let y = 24;
if (y % 2 === 0) {
console.log(`Liczba ${y} jest parzysta`);
}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:
Zwiększenie lub zmniejszenie wartości o 1 możemy wykonać tak jak w powyższych przykładach, ale też możemy skorzystać z operatorów inkrementacji i dekrementacji:
Operatory inkrementacji i dekrementacji, które mogą 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.
Z powodu takiego zachowania, dość często inkrementację/dekrementację wykonuje się w oddzielnej linii - tak by poprawić czytelność kodu:
Operatory porównania
Możemy je znaleźć między innymi w instrukcjach warunkowych. Służą one do porównywania lewej strony równania do prawej, w wyniku której zawsze zwracana jest prawda albo fałsz (true/false).
Więcej na ten temat dowiemy się podczas stosowania instrukcji warunkowych.
Operatory logiczne
Operatory logiczne używane będą przez nas głównie w instrukcjach warunkowych. Służą do sprawdzania czy dane warunki są spełnione zwracając w wyniku true lub false.
&&
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
Operatory logiczne w równaniach
Powyższe operatory możemy też wykorzystać w momencie podstawiania pod zmienną nowej wartości. Dzięki temu możemy skrócić nasz zapis pozbywając się dodatkowych instrukcji if.
Pierwszym z nich jest operator &&. Jeżeli pierwsza wartość nie jest falsy (0, "", null, undefined, NaN, document.all), wtedy podstawiana jest druga wartość. W przeciwnym razie wybierana jest pierwsza wartość:
Kolejny operator - || podstawia pod zmienną wartość pierwszą w przypadku, gdy jest ona inna od falsy. W przeciwnym wypadku podstawiana jest wartość druga.
Wartość falsy oznacza, że w powyższych testach zmienna a nie może mieć także wartości 0 lub "". W wielu sytuacjach będzie to problematyczne.
W nowym Javascript mamy też operator ??, który działa bardzo podobnie, z tym, że prawa wartość zwracana jest tylko w przypadku, gdy lewa ma wartość nie falsy, a nullish (undefined lub null):
W EcmaScript 2021 powyższe zapisy możemy jeszcze bardziej uprościć za pomocą operatorów ||=, ??= i &&=.
Operator ||= podstawi nową wartość tylko wtedy, gdy obecna wartość jest falsy:
Operator &&= podstawi pod zmienną nową wartość gdy obecna wartość jest inna niż falsy (jest truthy):
Operator ??= podstawi nową wartość, gdy obecna wartość jest nullish (null lub undefined):
Last updated