Základy JavaScriptu
Základní operátory JavaScriptu
 Tisk

Základní operátory JavaScriptu

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

Aritmetické operátory pracují s číselnými hodnotami (literály, proměnné) jako jejich operandy a vrací číselnou hodnotu.


OperátorPopis
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

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.

Bitové logické operátory

OperátorPopis
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.

Bitové posuny (Shift operátory)

OperátorPopis
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

Logické operátory očekávají, že operandy jsou logického typu a vrací logickou hodnotu, tj. true nebo false.


OperátorPopis
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.

Zkrácené vyhodnocování

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:

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

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átorPopis
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í.


Priority operátorů

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átorPopis
.  []  () 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.

Operátory přiřazení

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í.

Operátory přiřazení pro pro aritmetické operace:

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.


Operátory přiřazení pro pro bitové operace:

x <<= y je zkratka x = x << y x >>= y je zkratka x = x >> y
x >>>= y je zkratka x = x >>> yx &= y je zkratka x = x & y
x ^= y je zkratka x = x ^ yx |= y je zkratka x = x | y