V ukázkových příkladech k tomuto studijnímu článku je používána značka <pre>. Text ohraničený ve značkách <pre> a </pre> je označen jako "preformatted" - předformátovaný. Ve výsledné stránce je text zobrazen s mezerami a zalomeními odstavce přesně tak jak byl napsán. Při používání metody document.write tedy není nutné za každý výpis umisťovat značku zalomení řádky. V příkladech jsou použity příkazy Java Scriptu, které zatím nebyly vysvětleny. Příklady slouží pouze k osvětlení významu aritmetických operátorů.
Operátory v JavaScriptu jsou: aritmetické, řetězcové, logické, podmínkový operátor, typeof, new, delete, void, přístupové operátory polí a objektů, tj. [ ] a . (tečka) a operátor volání funkce ( ). Jsou mezi nimi jak binární tak i unární operátory. Binární operátor vyžaduje dva operandy, jeden před a druhý za operátorem: operand1 operator operand2. Například x + y.
Unární operátor vyžaduje jeden operand před operátorem nebo za operátorem: operator operand nebo operand operator Například: x++ nebo ++x. Další výše uvedené operátory budou průběžně popsány v dalším textu.
Aritmetické operátory pracují s číselnými hodnotami (literály, proměnné) jako jejich operandy a vrací číselnou hodnotu.
Operátor | Popis | |
Sčítání | + | Sčítá dva číselné operandy. Pokud jsou oba operandy řetězce, vrátí řetězec, který je výsledkem připojení prvního operandu k druhému. Pokud je jeden z operandů řetězec, je druhý zkonvertován také na řetězec a tyto dva řetězce jsou spojeny. Je-li jeden z operandů objekt, pak jsou oba operandy konvertovány na řetězce a spojeny. |
Odečítání | - | Odečítá druhý operand od prvního. Oba operandy musí být čísla. Je-li použit jako unární operátor, neguje svůj operand. |
Násobení | * | Násobí dva operandy, které musí být čísla. |
Dělení | / | Dělí první operand druhým operandem. Oba operandy musí být čísla. Výsledkem je vždy reálné číslo. |
Celočíselné dělení - modulo | % | Vrací zbytek po celočíselném dělení prvního operandu druhým operandem. Oba operandy musí být čísla: operand1 % operand2. Například: 12 % 5 vrátí hodnotu 2. |
Unární negace - modulo | - | Konvertuje kladnou hodnotu na zápornou a naopak. |
Inkrement | ++ | Operátor inkrementuje svůj operand (to znamená, že k němu přidává jedničku) a může být použit dvěma způsoby: operand++ nebo ++operand. Když je použit před operandem, dává inkrementovanou hodnotu tohoto operandu. Je-li použit za operandem, inkrementuje svůj operand, ale dává neinkrementovanou hodnotu tohoto operandu. Například jestliže x má hodnotu 3, pak příkaz y = x++ zvětší x na 4 a nastaví y na 3. Jestliže x je 3, pak příkaz y = ++x zvětší x na 4 a nastaví y na 4. |
Dekrement | -- | Operátor dekrementuje svůj operand (to znamená, že od něj odečítá jedničku). Může být použit dvěma způsoby: operand-- nebo --operand. Funguje obdobně jako inkrement. Například jestliže x má hodnotu 3, pak příkaz y = x-- zmenší x na 2 a nastaví y na 3. Jestliže x je 3, pak příkaz y = --x zmenší x na 2 a nastaví y na 2. |
Funkci jednotlivých aritmetických operátorů z tabulky si můžete vyzkoušet na . Demonstruje tyto aritmetické operace: sčítání, odčítání, násobení, celočíselné dělení, zbytek po celočíselném dělení, inkrementační a dekrementační operátor. Změnou počáteční hodnoty výrazů operand1 a operand2 můžete libovolně experimentovat s výsledky. Implicitně jsou tyto proměnné nastaveny na hodnotu operand1 = 7 a operand2 = 3.
Bitové operátory pracují s bitovou podobou svých operandů. Operandy jsou zkonvertovány do 32bitových celých čísel. Logické bitové operátory srovnávají jednotlivé bity operandů po dvojicích, přesunovací operátory přesunou bity v prvním zadaném operandu o hodnotu druhého operandu.
Operátor | Popis | |
Bitové AND | & | Provádí logickou operaci AND na každém bitu operandů. Ve výsledku je bit nastaven pouze tehdy, je-li odpovídající bit nastaven v obou operandech. |
Bitové OR | | | Provádí logickou operaci OR na každém bitu operandů. Ve výsledku je bit nastaven pouze tehdy, je-li odpovídající bit nastaven v jednom nebo v obou operandech. |
Bitové XOR | ^ | Provádí logickou operaci XOR na každém bitu operandů. Ve výsledku je bit nastaven pouze tehdy, je-li odpovídající bit nastaven v jednom, ale nikoli v obou operandech. |
Funkci jednotlivých bitových operátorů si můžete vyzkoušet na ukázce . V ukázce je provedena operace bitového AND, bitového OR a bitového XOR na operandech operand1, operand2. Standardně jsou proměnné nastaveny na operator1 = 10 a operator2 = 2. Funkce je následující: pokud si vyjádříme číslo 10 binárně, obdržíme 1010. Dvojka binárně odpovídá 0010. Pokud ve výsledku umístíme jedničku pouze na ta místa, kde jsou jak v operandu1 i operandu2, provedli jsme operaci bitového AND - dostaneme výsledek 0010, tedy opět dvojku. Obdobným způsobem prozkoumejte výsledky v případě bitového OR a bitového XOR.
Operátor | Popis | |
Posuv vlevo | << | Operátor posouvá všechny bity ve svém prvním operandu doleva o počet míst specifikovaný ve druhém operátoru (celé číslo od 1 do 31). Nové bity, které se objeví na pravé straně, budou 0. |
Posuv vpravo se znaménkem | >> | Operátor posouvá všechny bity ve svém prvním operandu vpravo o počet míst specifikovaný ve druhém operátoru (celé číslo od 1 do 31). Bity doplněné vlevo jsou stejné jako znaménkový bit původního operandu. |
Posuv vpravo s doplněním nulou | >>> | Jako operátor >>, kromě toho, že bity doplněné vlevo jsou vždy nuly. |
Funkci jednotlivých operátorů bitových posunů si můžete vyzkoušet na ukázce . V ukázce je proveden bitový posun o jeden bit doleva na operandu operand1, který je nastaven na hodnotu 8 - binárně 1000. Posunutím o jeden bit doleva a doplněním nuly zprava dostaneme číslo 10000 - tedy 16.
Logické operátory očekávají, že operandy jsou logického typu a vrací logickou hodnotu, tj. true nebo false.
Operátor | Popis | |
Logický součin, AND | && | Vrací logickou hodnotu true pokud jsou oba operandy true, jinak vrací false. |
Logický součet, OR | || | Vrací logickou hodnotu true, pokud je alespoň jeden z operandů roven true, jinak vrací false. |
Negace, NOT | ! | Neguje výraz operandu. |
Logické výrazy jsou vyhodnocovány zleva doprava a jsou testovány na možnost zkráceného vyhodnocení podle následujících pravidel:
bude zkráceně vyhodnoceno jako false.
Funkci jednotlivých logických operátorů z tabulky si můžete vyzkoušet na ukázce . Objasňuje použití logických operátorů AND, OR a NOT na operandech operand1, operand2. Ty jsou nastaveny na operand1 = true, operand2 = false. Podle hodnoty těchto operandů vypisuje ukázka jeden z těchto výsledků: "Oba operandy mají hodnotu true", "Alespoň jeden operand má hodnotu true", "Oba operandy mají hodnotu false". V našem případě se zobrazí druhé hlášení.
Relační operátory porovnávají dva operandy a vrací logické hodnoty true nebo false. Operandy mohou být čísla nebo řetězce. Při použití řetězců je porovnání založeno na standardním lexikografickém uspořádání. Pozor na skutečnost, že např. v kódu ASCII jsou všechna velká písmena před malými a proto například hodnota výrazu "Zoo" < "ahoj" je true, zatímco hodnota výrazu "zoo" < "ahoj" je false.
Operátor | Popis | |
Rovnost | == | Vrací true jestliže jsou si operandy rovny, jinak vrací false. |
Nerovnost | != | Vrací false jestliže jsou si operandy rovny, jinak vrací true. |
Větší než | > | Vrací true v případě, že první operand je větší než druhý, jinak vrací false. |
Větší nebo rovno | >= | Vrací true v případě, že první operand je větší nebo roven druhému operandu, jinak vrací false. |
Menší než | < | Vrací true v případě, že první operand je menší než druhý, jinak vrací false. |
Menší než nebo rovno | <= | Vrací true v případě, že první operand je menší nebo roven druhému operandu, jinak vrací false. |
Funkci jednotlivých relačních operátorů si můžete vyzkoušet na ukázce . V ukázce je provedeno porovnání těchto operandů: operand1 = 10, operand2 = 10 . Výsledek je jeden buď operand1 má stejnou hodnotu jako operand2 nebo operand1 má jinou hodnotu než operand2. V našem případě se zobrazí prvé hlášení.
Operátory v JavaScriptu jsou vyhodnocovány podle priority. Operátory ve stejném řádku jsou vyhodnocovány v pořadí zleva doprava. Pro změnu priority lze použít závorky stejně jako např. v Pascalu. Následující tabulka obsahuje operátory seřazené od nejvyšší do nejnižší priority, jsou v ní pro úplnost uvedeny i operátory, které zatím nebyly zmíněny a také některé operátory, které nebudou předmětem dalšího výkladu.
Operátor | Popis |
.  []  () | Přístup k poli nebo objektu, indexování pole, volání funkce. |
++   --  -  ~  !  typeof   new   void   delete | Unární operátory. |
*  /  % | Násobení, dělení, dělení modulo. |
+  -  + | Sčítání, odečítání, spojování řetězců. |
<<   >>  >>> | Bitové posuny. |
<   <=   >   >= | Porovnání. |
==   !=   ===   !=== | Rovnost, nerovnost, identita, nonidentita. |
& | Bitové AND. |
^ | Bitové XOR. |
| | Bitové OR. |
&& | Logické AND. |
|| | Logické OR. |
?: | Podmínkový operátor. |
=  op= | Přiřazení, přiřazení s operací op (např. j *= i má stejný význam jako j = j * i. |
Pro přiřazení hodnoty proměnné se používá rovnítko, např.: i = 7. Operátor = očekává, že jeho levý operand bude proměnná, prvek pole nebo vlastnost objektu a dále očekává, že jeho pravý operand bude libovolná hodnota jakéhokoli typu vzniklá např. vyhodnocením výrazu. Protože je = definováno jako operátor, lze jej zahrnout i do složitějších výrazů. Například lze přiřadit a otestovat hodnotu v témže výrazu: (a = b) == 7. Dále je možnost přiřadit stejnou hodnotu více proměnným: i = j = k = 0.
Mimo normálního přiřazení je definováno ještě přiřazení s operací, které zajišťuje zkrácení prostřednictvím kombinace přiřazení s některou další operací.
x += y je zkratka x = x + y | x -= y je zkratka x = x - y |
x *= y je zkratka x = x * y | x /= y je zkratka x = x / y |
x %= y je zkratka x = x % y |
Funkci jednotlivých operátorů přiřazení si můžete vyzkoušet na ukázce . Je zde užití aritmetického přiřazovacího operátoru operand += operand2, což je zkratka pro operand1 = operand1 + operand2. V našem případě je operace prováděna s hodnotami: operand1 = 10, operand2 = 5. Výsledkem je tedy přiřazení čísla 15 do proměnné operand1.
x <<= y je zkratka x = x << y | x >>= y je zkratka x = x >> y |
x >>>= y je zkratka x = x >>> y | x &= y je zkratka x = x & y |
x ^= y je zkratka x = x ^ y | x |= y je zkratka x = x | y |