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
JavaScript i
VBScript jazyce, např.
(4 * x + 1) / 3
- Výraz pro logické operace typu "a zároveň", "nebo" ... se již liší, např.
- 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 objektu
PmExpr, který slouží k dynamickému vyhodnocení
JavaScript výrazu.
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) |
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;
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í celočíselná, 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).