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 minusa, otrzymujemy 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++; // postinkrementacjaI to jest "postinkrementacja". A tak wygląda "preinkrementacja":
++x; // preinkrementacjaW 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--; // postdekrementacjaa tu, "predekrementacja":
--x; // predekrementacjaco 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 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!
