Jednym z podstawowych tematów programistycznych są operatory jakie znajdziesz również tutaj, w języku JavaScript. Trzeba je niezaprzeczalnie opanować, aby w ogóle dyskutować o jakimkolwiek pisaniu programu ❗. Spokojnie pochylimy się nad każdym z nich i wytłumaczę co wolno, a czego nie wolno. Wchodzisz w to 🙂?

OPERATORY W JĘZYKU JAVASCRIPT SĄ POGRUPOWANE W BARDZIEJ SZCZEGÓŁOWE KATEGORIE!

Operatory dzielą się na poszczególne rodzaje. To nie są wyłącznie arytmetyczne, lecz są także relacyjne, logiczne czy też operatory przypisania. Musisz koniecznie rozróżniać o jakie może się rozchodzić koledze z zespołu, aby błyskawicznie się ze sobą dogadywać 🗣.

ARYTMETYCZNE

Zacznijmy od czegoś najbardziej oczywistego, co przyszłoby do głowy jako pierwsze większej części społeczeństwa 😊. Kiedy ludzie słyszą słowo "operator", to zwykle chodzi o arytmetyczny. Istotnie, są arytmetyczne operatory w języku JavaScript. I wymieniamy po kolei:

DODAWANIE

Dodawanie jako operator dwuargumentowy (binarny) powoduje zsumowanie podanych składników pod postacią liczb całkowitych lub rzeczywistych, przy czym liczby z ułamkiem nazywamy w programowaniu "zmiennoprzecinkowymi" ℹ️. Dozwolona jest także mieszanina, czyli np. jedna całkowita, druga zmiennoprzecinkowa. Oto przykładowy kod wypisujący sumę dwóch składników liczbowych przy użyciu dobrze znanego znaku plusa 👇:

console.log(25 + 6);

Podstawiając za składniki łańcuchy znaków tworzysz konkatenację - połączenie kilku łańcuchów lub arytmetycznych wyrażeń w jeden kompletny łańcuch:

console.log("Tekst A " + "i B.");

Ten przypadek "wyrzuci" na strumień wyjściowy łańcuch o treści:

"Tekst A i B."

Występuje też możliwość połączenia liczby z łańcuchem. Wówczas taka instrukcja:

console.log(25 + "Tekst");

spowoduje skonwertowanie liczby 25 na łańcuch znaków ("25"), wynikiem czego dostaniesz łańcuch:

"25Tekst"

a typ danych będzie łańcuchowy 😱.

ODEJMOWANIE

Odejmowanie nie różni się niczym od znanej ze szkoły podstawowej operacji różnicy w matematyce 😊. Podając przynajmniej dwie liczby (odjemną i odjemnik) pomiędzy znak minusaotrzymujemy wynik różnicy 👇:

console.log(14 - 6);

Żadnych innych posunięć nie ma w języku JavaScript. Gdyby nas interesowało "odejmowanie" łańcucha znaków, czyli "wycięcie" pewnego ciągu z łańcucha, to wówczas musimy sięgnąć po metodę "substring".

MNOŻENIE

Iloczyn tworzony jest przy pomocy operatora "gwiazdki" (nazywanej "asteryskiem" ℹ️). Ponieważ to także jest operator dwuargumentowy, wprowadzając co najmniej dwie liczby z jednej i z drugiej strony, język JavaScript wyznaczy nam wynik mnożenia:

console.log(6*9);
DZIELENIE

Iloraz wykonasz dzięki operatorowi dzielenia jaki jest reprezentowany przez znak ukośnika, "slash'a" czy bardziej konkretnie "forward slash'a" lub "foreslash'a" ('/') - ile tych określeń 😅. W każdym razie chodzi o operację podzielenia jednej liczby przez drugą:

console.log(24 / 2);

Wynik ilorazu będzie zmiennoprzecinkowy, gdyż jak w matematyce, może być to liczba z ułamkiem:

console.log(4 / 5);

Jak dobrze wiesz, dzielenie przez zero jest uznawane za działanie niedopuszczalne, więc gdybyś się skusił(a) na coś takiego:

console.log(5 / 0);

to nie licz na sensowny wynik 😁. JavaScript wyrzuci wtedy wartość "Infinity". Warto wiedzieć, że każdy język programowania odbiera to na swój własny sposób. W języku C doszłoby do awarii programu, w Javie do zgłoszenia wyjątku, a JavaScript zwraca wartość "Infinity". Pamiętaj, że to nie jest jednakowe! Natomiast sposób na to jest jednoznaczny: nie rób programowi na złość wstawiając bzdurne wyrażenia 😉.

RESZTA Z DZIELENIA A.K.A. "MODULO"

Słyszałeś(-aś) o operacji "modulo"? Modulo określa się w matematyce wyznaczanie reszty z dzielenia. W programowaniu nie używamy skrótu "mod", tylko korzystamy z symbolu procent ('%') 👇:

console.log(8 % 3);

To zwróci cyfrę 2, ponieważ w ósemce "mieszczą się" dwie trójki i zostaje 2 reszty. Gdybyś był(a) zainteresowany(-a) dlaczego jest taki, a nie inny wynik, sięgnij po artykuł klikając w załączony link ⛓.

POTĘGOWANIE

Operatory w języku JavaScript oferują coś jeszcze z serii arytmetycznych. Masz jeszcze możliwość ekspresowego potęgowania przy pomocy dwóch asterysków bez spacji (**). Tym sposobem 👇:

console.log(5**2);

unikasz konieczności wywoływania funkcji "Math.pow" albo co gorsza, korzystania z pętli "for" i ręcznego programowania podnoszenia do potęgi. "Keep it simple" 😀.

INKREMENTACJA

"Inkrementację" nazywamy operację zwiększenia liczbowej wartości zmiennej dokładnie o jeden w górę. Najczęściej spotkasz taki zapis 👇:

x++;    // postinkrementacja

I to jest "postinkrementacja". A tak wygląda "preinkrementacja":

++x;    // preinkrementacja

W programowaniu wyróżniamy "preinkrementację" i "postinkrementację". Zapraszam do załączonego artykułu po więcej szczegółów ℹ️. Ten sam efekt daje poniższa instrukcja, tylko nieco dłuższa:

x = x + 1;

Radzę od razu przyswajać sobie tę krótszą formę 👍.

DEKREMENTACJA

Dekrementacja jest operacją wprost przeciwną do inkrementacji i jej użycie spowoduje obniżenie liczbowej wartości zmiennej o 1. Tutaj jest "postdekrementacja":

x--;    // postdekrementacja

a tu, "predekrementacja":

--x;    // predekrementacja

co jest równoznaczne z:

x = x - 1;

Powtórzę się - od razu pisz w krótszej formie 😉!

RELACYJNE

Teraz czas na inne operatory w języku JavaScript, jakimi są relacyjne. Relacyjne, czyli służące do porównywania ze sobą wartości sposobem, jaki znamy z lekcji matematyki, czyli:

  • czy coś jest równe drugiemu,
  • czy coś jest większe od drugiego,
  • czy coś jest mniejsze bądź równe od drugiego.

i tak dalej. Przedstawmy to sobie w tabelce, żeby rzucić okiem na wszystkie jakie występują w tym języku:

OPERATOR ZNACZENIE PRZYKŁAD
== równe 5 == 5
=== równe i TAKI SAM typ danych 8 === 8
!= różne 6 != 7
!== różne i TAKI SAM typ danych 8 !== 0
< mniejsze od 4 < 8
<= mniejsze bądź równe od 4 <= 4
> większe od 0 > 7
>= większe bądź równe od 1 >= -9

Te operatory można stosować nie tylko do liczb, lecz także do takich typów danych, jak łańcuchy, wartości logiczne czy obiekty.

TEGO NIE UJRZYSZ W KAŻDYM JĘZYKU!

Przyjrzyj się czemuś ekskluzywnemu w języku JavaScript, a mianowicie na unikatową odmianę operatora porównania (drugi wiersz) mającego nie dwa, a TRZY znaki równości ⚠️! W wielu książkach możesz znaleźć zalecenie, żeby korzystać z tej odmiany operatora porównywania, zamiast z tej tradycyjnej. Powód jest istotny 🔴!

Wspomniany operator sprawdza nie tylko wartość, lecz także zgodność typów danych! W związku z tym, mając po lewej stronie cyfrę 5, a po prawej łańcuch znaków o wartości "5" 👇:

5 == "5";

zwróci...prawdę!!! A przy użyciu tego drugiego operatora porównania:

5 === "5";

okaże się fałszywe. Także zawsze patrz uważnie mój drogi/moja droga ile znaków jest umieszczonych (czy 2, czy 3). Najprostszą odpowiedzią na pytanie: "który wykorzystywać?" jest: "używać tylko i wyłącznie tego drugiego!" 😄. Bo jest bezpieczniejsze ✅!

PORÓWNYWANIE, A PRZYPISYWANIE

Nim przejdziesz dalej, zwrócę uwagę na różnicę pomiędzy operatorem przypisania (jeden znak równości), a operatorem porównania (dwa znaki równości). Pierwszy stosujesz do przypisywania wartości, a drugi do ich porównywania. Jeżeli nie odebrałeś(-aś) tej nauki od książki czy nauczyciela, przyjmij ją ode mnie. Łatwo się pomylić ze względu na podobieństwo ⚠️!

LOGICZNE

Logiczne operatory w języku JavaScript nie różnią się niczym od większości innych języków wysokiego poziomu, więc w tym przypadku masz do czynienia z wiedzą uniwersalną, którą możesz podstawić do innych języków 👍. Z takich najbardziej powszechnych wyróżniamy:

KONIUNKCJA

Koniunkcja to jest zdanie logiczne zwracające prawdę wtedy i tylko wtedy, gdy WSZYSTKIE warunki zostały spełnione (wartość logiczna "true"). Chcąc zbudować koniunkcję w języku JavaScript, używamy dwóch znaków "ampersandu" ("&&") 👇:

console.log(5 === 5 && 8 > 7);

Przykładowy warunek zwróci prawdę, gdyż oba warunki są spełnione ✅. Natomiast to już nie:

console.log(5 === 5 && 1 > 9 && 3 > 5);

gdyż jest spełniony tylko jeden z trzech warunków ❌. Rozumiesz już 🙂?

ALTERNATYWA

OR oznacza alternatywę, czyli zwrócenie na wyjściu prawdy, jeśli przynajmniej JEDEN z podanych warunków jest prawdziwy. Alternatywę oznaczamy podwójnym znakiem pionowej kreski jak przy wartości bezwzględnej (||).

Dla przykładu, ten kod 👇:

console.log(7 === 4 || 5 > 3);

da prawdę na wyjściu, bo wystarczy, że spełniony został ten drugi warunek ✅. Ale ten przykład okaże się fałszywy:

console.log(7 === 4 || 1 === 2 || 35 < 3);

bo żaden z warunków nie jest spełniony ❌.

NEGACJA

Negacja znana pod hasłem NOT, to zanegowanie wyniku zdania logicznego. To, co było prawdą, stanie się fałszem. Odwrotnie tak samo, fałsz stanie się prawdą. Stosujemy znak wykrzyknika (!), jednak w przeciwieństwie do alternatywy i koniunkcji, przed jedną wartością (bo to jest operator unarny, czyli jednoargumentowy!) ⚠️. Umieszczamy go przed wyrażeniem logicznym lub wartością boolowską ℹ️.

To jest przykład z wyrażeniem stałym "false" (jest bez sensu, dałem tylko na potrzeby przykładu) 👇:

console.log(!false);

Odwróciwszy wartość, da wynik prawdziwy . A tu przykład z wyrażeniem logicznym:

console.log(!(5 === 5));

Fałsz, bo wyrażenie jest prawdziwe, lecz negacja odwraca wynik .

Tutaj zauważ, że umieściłem wyrażenie w nawiasie!!! JavaScript jest znany od zaskakiwania programistów 😜 i dobrze jest dmuchać na zimne w takich sytuacjach, gdy kolejność wykonywania działań może być zupełnie inna ⚠️!

PRZYPISANIA

Ostatnie operatory w języku JavaScript, jakie chcę przytoczyć, to operatory przypisania. Polegają one na przypisywaniu albo modyfikowaniu wartości zmiennej. Znowu użyję tabelarycznego zestawienia wszystkich kombinacji przypisywania oraz ich odpowiedników "na piechotę". Spójrz:

OPERATOR KOMBINACJA ZAPIS ALTERNATYWNY ZNACZENIE
= brak przypisanie wartości
+= a += N a = a + N dodanie wartości do zmiennej
-= a -= N a = a - N odejmowanie wartości od zmiennej
*= a *= N a = a*N mnożenie zmiennej przez wartość
/= a /= N a = a / N dzielenie zmiennej przez wartość
%= a %= N a = a % N wyznaczenie reszty z dzielenia zmiennej przez wartość
**= a **= N a = a ** N potęgowanie wartości zmiennej przez wykładnik

Widzisz znak równości (pierwszy operator od góry)? To jest przypisywanie ℹ️! Dlatego uczulam ponownie, żebyś nie pomylił(-a) przypisywania z porównywaniem ukazanym wyżej ⛔.

Tabelka przedstawia "skróty" zapisu modyfikacji wartości przy użyciu operatorów arytmetycznych, które zostały opisane na samym początku tego artykułu (zapis alternatywny). Radzę od razu opanować ich wykorzystywanie, gdyż są o wiele wygodniejsze 🌟.

Operatory w języku JavaScript

Operatory dzielą się na arytmetyczne, relacyjne, logiczne i przypisania. Różnią się symbolami i zastosowaniem, a wiedza o nich wszystkich jest niezbędna, żeby konstruować przepływ programu tak jak się chce!


Operatory w języku JavaScript wymagały o wiele większych komentarzy ze swej strony, stąd taki wielgachny artykuł w porównaniu do poprzednich wpisów 😥. Spróbuj z całych sił zrozumieć ten temat w jak największym stopniu, gdyż bez znajomości operatorów, możesz zapomnieć o napisaniu JAKIEGOKOLWIEK konkretnego programu 💣. Serio!

PODOBNE ARTYKUŁY