Predchozi stranka Dalsi stranka Obsah

JavaScript vyrazy a operatory

Vyrazy

Vyraz je jakakoliv mnozina literalu, promennych, operatoru a vyrazu ktera se da vyhodnotit do jednoduche hodnoty. Hodnota muze byt cislo, retezec anebo logicka hodnota. V zasade jsou zde dva typy vyrazu: jeden ktery prirazuje hodnotu promenne a druhy ktery proste ma hodnotu. Napriklad tento vyraz

x = 7

je vyraz, ktery prirazuje x hodnotu 7. Tento vyraz se vyhodnoti jako 7. Tento vyraz pouziva prirazovaci operator. Na druhe strane vyraz

3 + 4

se jednoduse vyhodnoti jako 7; neprovede zadne prirazeni. Operatory pouzite v takovychto vyrazech jsou nazyvany jednoduse jako operatory.

JavaScript ma nasledujici typy vyrazu :

Specialni klicove slovo null znamena prazdnou hodnotu. Pro kontrast, promenne kterym nebyla prirazena hodnota jsou nedefinovany a nemohou byt pouzity bez run-time chyboveho hlaseni.

Podminkovy vyraz

Podminkovy vyraz muze podle podminky nabit jednu ze dvou hodnot. Syntax

(condition) ? val1 : val2

Jestlize je podminka pravdiva (true), vyraz ziska hodnotu val1, jinak ziska hodnotu val2. Muzete pouzit podmikovy vyraz kdekoliv muzete pouzit standardni vyraz.

Napriklad

status = (age >= 18) ? "adult" : "minor"
Tento prikaz priradi hodnotu "adult" promenne status jestlize age je osmnact ci vetsi. Jinak priradi do promenne status hodnotu "minor".

Operatory prirazeni (=, +=, -=, *=, /=)

Prirazovaci operator prirkne hodnotu levemu operandu na zaklade hodnoty praveho operandu. Zakladnim prirazovacim operatorem je rovnitko (=), ktere priradi hodnotu praveho operandu levemu (x = y).

Ostatni operatory jsou zkratky pro standartdni arithmenticke operace :

Tedy jsou dalsi prirazovaci operatory pro bitove operace :

Operatory

JavaScript ma arithmeticke, retezcove a logicke operatory. Jsou mezi nimi jak binarni tak i unarni operatory. Binarni operator vyzaduje dva operandy, jeden pred a druhy za operatorem :

operand1 operator operand2

Napriklad 3 + 4 or x * y

Unarni operator vyzaduje jeden operand, bud pred ci za operatorem :

operator operand

or

operand operator

Napriklad x++ or ++x.

Arithmeticke operatory

Arithmeticke operatory berou ciselne hodnoty (bud literaly ci promenne) jako jejich operandy a vraceji jednoduchou ciselnou hodnotu.

Standardni arithmeticke operatory

Standardni arithmeticke operatory jsou scitani (+), odcitani (-), nasobeni (*), a deleni (/).

Celociselne deleni - modul (%)


var1 % var2

Napriklad, 12 % 5 vratis 2.

Zvetseni - increment (++)

Operator zvetseni muze byt pouzit dvema zpusoby :
var++ or ++var

Pri postfixu vrati hodnotu pred zvetsenim, pri prefixu po zvetseni.

Priklad, jestlize x je 3, pak prikaz

y = x++

zvetsi x na 4 a nastavi y na 3.

Jestlize x je 3, pak prikaz

y = ++x

zvetsi x na 4 a nastavi y na 4.

Zmenseni - decrement (--)

Operator zmenseni muze byt pouzit dvema zpusoby :

var-- or --var

Pri postfixu vrati hodnotu pred zmensenim, pri prefixu po zmenseni.

Priklad, jestlize x je 3, pak prikaz

y = x--

zmensi x na 2 a nastavi y na 3.

Jestlize x je 3, pak prikaz

y = --x

zmensi x na 2 a nastavi y na 2.

Unarni negace (-)

Operator unarni negace musi predchazet dany operand. Napriklad

x = -x

vezme zapornou hodnotu x; tj. jestlize x bylo 3, stalo se -3.

Bitove operatory

Bitove operatory berou sve operandy jako mnozinu bitu (nul a jednicek).

Bitove logicke operatory

Bitove logicke operatory pracuji asi takto :

Bitove posuny (Shift operatory)

Posunove operatory maji dva operandy: prvni je cislo ve kterem se posun odehrava a druhy specifikuje pocet bitovych pozic o ktere je prvni operand posunut. Smer je kontrolovan pouzitym operatorem.

Posunovaci operatory konvertuji operandy na 32-bit integery a vraceji vysledek toho sameho typu jako levy operand.

Posun doleva (<<)

Tento operator posune prvni operand o specifikovany pocet bitu doleva. Presahujici bity jsou zniceny a zprava se objevuji nulove bity.

Sign-propagating posun doprava (>>)

Tento operator posune prvni operand o specifikovany pocet bitu doprava. Presahujici bity jsou zniceny a kopie nejlevejsich bitu jsou posouvany zleva.

Zero-fill posun doprava (>>>)

Tento operator posune prvni operand o specifikovany pocet bitu doprava. Presahujici bity jsou zniceny a zleva se objevuji nulove bity.

Logicke operatory

Logicke operatory berou logicke (Boolean) hodnoty jako operandy. Vraceji logickou hodnotu - tj. true ci false.

And (&&)

Pouziti: expr1 && expr2

Je true pokud oba vyrazy jsou true. Jinak false.

Or (||)

Pouziti: expr1 || expr2

Je true pokud alespon jeden z vyrazu je true. Jinak je false.

Not (!)

Pouziti: !expr

Pro false vraci true a naopak.

Zkracene vyhodnocovani

Jak jsou logicke vyrazy vyhodnocovany z leva do prava, tak jsou testovany na moznost zkraceneho vyhodnoceni podle nasledujich pravidel :

Operatory porovnani (= =, >, >=, <, <=, !=)

Operator porovnani srovna sve operandy a vrati logickou hodnotu podle toho zda je porovnani pravdive ci ne. Operandy mohou byt cisla nebo retezce. Pri pouziti retezcu je porovnani zalozeno na standardnim lexikografickem usporadani.

Operatory :

Retezcove operatory

Pro retezce je definovan operator konkatenace (+), neboli spojeni dvou retezcu do jednoho. Napriklad

"my " + "string"

Vrati retezec

"my string"

Muze byt pouzit i zkratkovy operator += . Priklad

mystring += "bet"
vyhodnoti jako "alphabet" a priradi tuto hodnotu do mystring.

Priorita operatoru

Priorita operatoru urcuje jejich poradi pri vyhodnocovani vyrazu. Toto muzete prebit pouzit zavorek.

Priorita od nejnizsi do nejvyssi :

carka ,
prirazeni = += -= *= /= %= <<= >>= >>>= &= ^= |=
podminka ?:
logicke-or ||
logicke-and &&
bitovy-or |
bitovy-xor ^
bitovy-and &
rovnost == !=
porovnani < <= > >=
posun << >> >>>
scitani/odcitani + -
nasobeni/deleni * / %
negace/zvetseni/zmenseni ! ~ - ++ --
call, member () [] .


Predchozi stranka Dalsi stranka Obsah