Promotic
WikipediaLinkedInYoutubeTwitterFacebook

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 JavaScript i VBScript jazyce, 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 grafických prvcích v datové vazbě E - Vazba na obecný výraz.
- v objektu PmExpr, který slouží k dynamickému vyhodnocení JavaScript výrazu.
- v parametrech příkazů zdrojového souboru pro objekt PmReport - viz Popis zdrojového souboru objektu PmReport.
 
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)
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

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ů doleva). Například v1<<2 vrací dvojnásobek hodnoty v1.
v1 >> v2 Bitový posun vpravo (hodnoty bitů ve v1 se posunou o v2 bitů doprava). 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 nejdřív tuto hodnotu na celé číslo převede.

Pokud nelze hodnotu převést, pak operátor vrací hodnotu NaN.

Příklad:
Viz příklady v popisu datové vazby E - Vazba na obecný výraz.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice