Operatory to wed³ug definicji polecenia przetwarzj±ce zmienn± lub zmienne (najczê¶ciej dwie) i zwracaj±ce wynik. Tak wiêc operatory w jêzykach programowania maj± dok³adnie tak± sam± rolê jak w matematyce. Je¶li jednak dla kogo¶ nie jest to jasne radzê po prostu przyjrzeæ siê przyk³adom.
To chyba najbardziej oczywiste operatory. Ale na wypadek, gdyby kto¶ ich nie zna³, oto krótka tabelka:
Mo¿e tylko ten ostatni wymaga wyja¶nienia. Jest to nic innego, jak reszta z dzielenia pierwszej liczby przez drug±. Te operatory stosuje siê dok³adnie tak jak na co dzieñ:
Ró¿ni± siê one tym od poprzednich, ¿e dzia³anie wykonywane jest na jednej tylko liczbie (st±d unarne). S± to:
Pod tymi tajemniczymi nazwami kryj± siê odpowiednio zwiêkszanie i zmniejszanie zmiennej o 1. Inkrementacja wygl±da nastêpuj±co:
Jest to równowa¿ne takim dwóm zapisom (o drugim bêdzie mowa pó¼niej):
Mo¿na tego operatora u¿ywaæ te¿ w przypisaniach:
Uwaga! Te dwa zapisy oznaczj± dwie ró¿ne rzeczy! W pierwszym przypadku najpierw nast±pi przypisanie, a dopiero potem inkrementacja, a w drugim - odwrotnie. Je¶li komu¶ wydaje siê to myl±ce, zawsze mo¿na pisaæ:
Dekrementacj± rz±dz± takie same zasady, trzeba tylko zamieniæ "++" na "".
Negacjê oznacza "-". Zmienia on po prostu znak wyra¿enia z ujemnego na dodatni albo odwrotnie. Nic odkrywczego, prawda? Przyk³ad:
Najprostszy z nich zosta³ juz opisany. Jest to "=". Ale istniej± te¿ inne operatory przypisania bêd±ce w zasadzie tylko skrótami: "", "" itd. £±cz± one w sobie przypisanie i proste dzia³anie arytmetyczne. Oto wyja¶nienie:
S± to wyra¿enia typu wiêksze od, równe itd. Wszystko powinna wyja¶niæ kolejna tableka:
Zapewne i te operatory nie s± obce wszystkim tym, którzy znaj± podstawy matematyki. S± to "i", "albo" oraz "nie", które w JS zapisuje siê jako: "&&", "||" oraz "!". Oto kilka przyk³adów konstrukcji logicznych (litery oznaczj± tu dowolne wyra¿enia, którym mo¿na przyporz±dkowaæ warto¶ci true albo false):
Uwaga! Prawa autorskie do ostatniego z przyk³adów nale¿± do pewnego angielskiego dramaturga :).
Na ³añcuchach znakowych tak¿e mo¿na wykonywaæ operacje. Jednak nie maj± tu sensu np. odejmowanie albo mno¿enie. Z operatorów arytmetycznych mo¿na stosowaæ tylko "+" (by³a ju¿ o tym mowa, ale dla przypomnienia: jest to sklejenie dwóch stringów). Je¶li chodzi o porównania, ma tu sens tylko proste porównanie ("=="), trudno by³oby np. okre¶liæ, który ³añcuch znakowy jest wiêkszy (uwaga: mo¿na jednak porównywaæ d³ugo¶æ ³añcuchów - MójString.length, gdy¿ jest to zwyk³a liczba ca³kowita).
Co jednak siê stanie, gdy spróbujemy wykonywaæ dzia³ania na stringach tak jak na liczbach? Otó¿ zostanie wtedy podjêta próba zamiany stringów na liczby i je¶li siê ona powiedzie dzia³anie zostanie wykonanie. Jednak je¶li taka konwersja nie bêdzie mo¿liwa (jak np. z "trzysta"), otrzymamy komunikat o b³êdzie.
Jest to dosyæ specyficzne wyra¿enie, zwi±zane ¶ci¶le z operatorami logicznymi i przypisania. Pozwala ono na uzale¿nienie przypisywanej warto¶ci od spe³nienia jakiego¶ warunku. Ma ono nastêpuj±c± postaæ:
Je¶li warunek jest spe³niony, zmiennej przypisana zostanie warto¶æ_prawda, je¶li nie - warto¶æ_fa³sz. Oto przyk³adowe u¿ycie:
To samo mo¿na zapisaæ za pomoc± instrukcji warunkowej ... ...:
Nie warto jednak u¿ywaæ wyra¿enia warunkowego, je¶li chcemy jakiej¶ zmiennej przypisaæ prawdê albo fa³sz. Wtedy wygodnej napisaæ co¶ takiego: