Promotic
Přihlášení logon

Operátory JavaScript a popis syntaxe

Výraz jazyka JavaScript se podobá výrazu jazyka VBScript, má však více operátorů a proto je obecnější a pružnější (viz Seznam operátorů jazyka VBScript). Systém PROMOTIC proto na některých místech raději využívá výraz jazyka JavaScript.

Porovnání:
- Výraz sčítání, odčítání, násobení, dělení ... má stejný tvar v jazyce JavaScript i v jazyce VBScript, např.
(4 * x + 1) / 3
- Výraz pro logické operace typu "a zároveň", "nebo" ... se již liší, např.
pro JavaScript: (b1 && b2) || b3
pro VBScript: (b1 And b2) Or b3.
- Velmi užitečný podmíněný JavaScript výraz (např. b ? 1 : 2) nelze ve VBScript vůbec zapsat.


JavaScript výraz se v systému PROMOTIC používá:
- v Pmg objektech v datové vazbě "E - Obecný výraz".
- v objektu PmExpr, který slouží k dynamickému vyhodnocení JavaScript výrazu.
- v parametrech příkazů zdrojového souboru pro objekt PmaReport - viz Popis zdrojového souboru objektu PmaReport.


Seznam operátorů JavaScript výrazu:

Aritmetické operátory:

operátor Popis
v1 + v2 Sčítání čísel nebo spojení řetězců
v1 - v2 Odčítání čísel
v1 * v2 Násobení čísel
v1 / v2 Dělení čísel
v1 % v2 Modulo (zbytek po dělení v1/v2)
v1 ? v2 : v3 Pokud hodnota v1 je true, pak se vrací hodnota v2, v jiném případě se vrací hodnota v3
v1++ Inkrement čísla = přičítání hodnoty 1 (v1 = v1 + 1)
v1-- Dekrement čísla = odečítání hodnoty 1 (v1 = v1 - 1)
v1 += v2; Zkrácený zápis pro sčítání (v1 = v1 + v2)
v1 -= v2; Zkrácený zápis pro odečítání (v1 = v1 - v2)
v1 *= v2; Zkrácený zápis pro násobení (v1 = v1 * v2)
v1 /= v2; Zkrácený zápis pro dělení (v1 = v1 / v2)
+v1 Unární operátor +, který se pokusí převést operand (v1) na číslo.
- Pokud operand je číslo, pak se vrátí hodnota operandu.
- Pokud operand je řetězec (představující celé nebo reálné číslo), pak se vrátí hodnota tohoto čísla.
Pokud řetězec je prázdný (""), pak se převede na 0.
- Pokud operand je typu bool, pak se převede true na 1 a false na 0.
- null se převede na 0.
- Pokud operand nelze převést na platné číslo, pak výsledek bude hodnota NaN (Not-a-Number).
Příklad:
JavaScriptVyber a zkopíruj do schránky

var val;

val = 1 + 2;   // Vrací 3
val = true + 1;   // Vrací 2
val = false + false;   // Vrací 0
val = 6 + "Kotel";   // Vrací "6Kotel"
val = "Kotel" + false;   // Vrací "Kotelfalse"
val = "Kotel" + "Ventil";   // Vrací "KotelVentil"

val = 12 % 5;   // Vrací 2
val = -1 % 2;   // Vrací -1
val = 1 % -2;   // Vrací 1
val = -4 % 2;   // Vrací -0
val = 5.5 % 2;   // Vrací 1.5

val += 3.5;   // Zkrácený zápis výrazu: val = val + 3.5;
val -= 6;   // Zkrácený zápis výrazu: val = val - 6;

Porovnávací operátory:

operátor Popis
v1 == v2 Vrací true pokud v1 a v2 jsou stejné
v1 != v2 Vrací true pokud v1 a v2 jsou různé
v1 >= v2 Vrací true pokud v1 je větší nebo rovno v2
v1 > v2 Vrací true pokud v1 je větší než v2
v1 <= v2 Vrací true pokud v1 je menší nebo rovno v2
v1 < v2 Vrací true pokud v1 je menší než v2


- Systém PROMOTIC zatím nepodporuje přísné JavaScript porovnávací operátory typu === a !==.
- Dvě hodnoty typu String (text) jsou porovnány podle standardního abecedního pořadí, použitím Unicode hodnot.
- Při porovnání čísla a textu (String) je text konvertován na číslo.
- Pokud jeden z operandů je typu Boolean, pak je tento operand konvertován na 1 pokud je true a 0 pokud je false.


Příklad:
JavaScriptVyber a zkopíruj do schránky

var val;

val = 1 == 1;   // Vrací true
val = 1 == "1";   // Vrací true
val = "1" == 1;   // Vrací true
val = 0 == false;   // Vrací true

val = 1 != 2;   // Vrací true
val = 1 != "1";   // Vrací false
val = 1 != true;   // Vrací false
val = 0 != false;   // Vrací false

Logické operátory:

v1 && v2 Logické AND (vrací true pokud v1 a v2 je true)
v1 || v2 Logické OR (vrací true pokud v1 nebo v2 je true)
!v1 Logické NOT (vrací true pokud v1 je false)

Bitové operátory:

operátor Popis
v1 & v2 Bitové AND (každý bit vrácené hodnoty je výsledkem operace AND příslušných bitů ve v1 a v2)
v1 | v2 Bitové OR (každý bit vrácené hodnoty je výsledkem operace OR příslušných bitů ve v1 a v2)
v1 ^ v2 Bitové XOR (každý bit vrácené hodnoty je výsledkem operace XOR příslušných bitů ve v1 a v2
~v1 Bitové NOT (každý bit vrácené hodnoty je výsledkem operace NOT příslušného bitu ve v1). V systému PROMOTIC zatím není implementováno.
v1 << v2 Bitový posun vlevo (hodnoty bitů ve v1 se posunou o v2 bitů vlevo). Například v1<<2 vrací dvojnásobek hodnoty v1.
v1 >> v2 Bitový posun vpravo (hodnoty bitů ve v1 se posunou o v2 bitů vpravo). Například v1>>2 vrací celočíselný podíl v1/2.


Bitové operátory v jazyce JavaScript vyžadují celočíselné hodnoty (4-bajt celé číslo).
Pokud hodnota není celé číslo, pak operátor nejprve tuto hodnotu na celé číslo převede.
Pokud hodnotu nelze převést, pak operátor vrací hodnotu NaN (lze testovat metodou Pm.IsValid).
Příklad:
Viz příklady v popisu datové vazby "E - Obecný výraz".
© MICROSYS, spol. s r.o.Update cookies preferences