Promotic

Operatory JavaScript oraz opis składni

Wyrażenie języka JavaScript jest podobne do wyrażenia języka VBScript, posiada jednak więcej operatorów i dlatego jest bardziej ogólne i bardziej elastyczne (patrz Lista operatorów języka VBScript). Z tego powodu system PROMOTIC w niektórych miejscach wykorzystuje raczej wyrażenie języka JavaScript.

Porównanie:
- Wyrażenie dodawanie, odejmowanie, mnożenie, dzielenie ... ma taką samą formę zarówno w języku JavaScript jak i języku VBScript, np.
(4 * x + 1) / 3
- Wyrażenie operacji logicznych rodzaju "i równocześnie", "albo" ... są już różne, np.
dla JavaScript: (b1 && b2) || b3
dla VBScript: (b1 And b2) Or b3.
- Bardzo przydatne warunkowe wyrażenie JavaScript (np. b ? 1 : 2) nie można w języku VBScript w ogóle zapisać.


Wyrażenie JavaScript w systemie PROMOTIC jest stosowane:
- w Pmg obiektach w powiązaniu danych "E - Powiązanie danych z wyrażeniem ogólnym".
- w obiekcie PmExpr, przeznaczonym do dynamicznego obliczania wyrażeń JavaScript.
- w parametrach poleceń pliku źródłowego dla obiektu PmaReport - patrz Opis źródłowego pliku obiektu PmaReport.


Lista operatorów wyrażenia JavaScript:

Operatory arytmetyczne:

operator Opis
v1 + v2 Dodawanie liczb lub połączenie łańcuchów
v1 - v2 Odejmowanie liczb
v1 * v2 Mnożenie liczb
v1 / v2 Dzielenie liczb
v1 % v2 Modulo (reszta po dzieleniu v1/v2)
v1 ? v2 : v3 Jeżeli wartość v1 jest true, wtedy jest zwracana wartość v2, w innym przypadku jest zwracana wartość v3
v1++ Inkrement liczby = dodanie wartości 1 (v1=v1+1)
v1-- Dekrement liczby = odjęcie wartości 1 (v1=v1-1)
Przykład:
JavaScriptWybierz oraz skopiuj do schowka

var val;

val = 1 + 2;   // Zwraca 3
val = true + 1;   // Zwraca 2
val = false + false;   // Zwraca 0
val = 6 + "Kociol";   // Zwraca "6Kociol"
val = "Kociol" + false;   // Zwraca "Kociolfalse"
val = "Kociol" + "Zawór";   // Zwraca "KociolZawór"

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

Operatory porównawcze:

operator Opis
v1 == v2 Zwraca true jeżeli v1 oraz v2 są takie same
v1 != v2 Zwraca true jeżeli v1 oraz v2 są różne
v1 >= v2 Zwraca true jeżeli v1 jest większe lub równe v2
v1 > v2 Zwraca true jeżeli v1 jest większe niż v2
v1 <= v2 Zwraca true jeżeli v1 jest mniejsze lub równe v2
v1 < v2 Zwraca true jeżeli v1 jest mniejsze niż v2


- System PROMOTIC aktualnie nie wspiera rygorystyczne JavaScript porównawcze operatory typu === oraz !==.
- Dwie wartości typu String (tekst) są porównywane według standardowej kolejności alfabetycznej, stosując Unicode wartości.
- Podczas porównania liczby oraz tekstu (String) tekst zostanie skonwertowany na liczbę.
- Jeżeli jeden z operandów jest typu Boolean, wtedy ten operand zostanie skonwertowany na 1 jeżeli jest true oraz 0 jeżeli jest false.


Przykład:
JavaScriptWybierz oraz skopiuj do schowka

var val;

val = 1 == 1;   // Zwraca true
val = 1 == "1";   // Zwraca true
val = "1" == 1;   // Zwraca true
val = 0 == false;   // Zwraca true

val = 1 != 2;   // Zwraca true
val = 1 != "1";   // Zwraca false
val = 1 != true;   // Zwraca false
val = 0 != false;   // Zwraca false

Operatory logiczne:

v1 && v2 Logiczne AND (zwraca true jeżeli v1 oraz v2 jest true)
v1 || v2 Logiczne OR (zwraca true jeżeli v1 lub v2 jest true)
!v1 Logiczne NOT (zwraca true jeżeli v1 jest false)

Operatory bitowe:

operator Opis
v1 & v2 Bitowe AND (każdy bit wartości zwrotnej jest wynikiem operacji AND odpowiednich bitów v1 oraz v2)
v1 | v2 Bitowe OR (każdy bit wartości zwrotnej jest wynikiem operacji OR odpowiednich bitów v1 oraz v2)
v1 ^ v2 Bitowe XOR (każdy bit wartości zwrotnej jest wynikiem operacji XOR odpowiednich bitów v1 oraz v2
~v1 Bitowe NOT (każdy bit wartości zwrotnej jest wynikiem operacji NOT odpowiedniego bitu v1). W systemie PROMOTIC na razie nie implementowane.
v1 << v2 Bitowe przesunięcie wlewo (wartości bitów w v1 zostaną przesunięte o v2 bitów wlewo). Na przykład v1<<2 zwraca dwukrotność wartości v1.
v1 >> v2 Bitowe przesunięcie w prawo (wartości bitów w v1 zostaną przesunięte o v2 bitów w prawo). Na przykład v1>>2 zwraca wynik dzielenia w zakresie liczb całkowitych v1/2.


Operatory bitowe w języku JavaScript wymagają wartości całoliczbowe (4-bajtowa liczba całkowita).
Jeżeli wartość nie jest całoliczbowa, wtedy operator najpierw tą wartość zamieni na liczbę całkowitą.
Jeżeli wartość nie można zamienić, wtedy operator zwraca wartość NaN.
Przykład:
Patrz przykłady w opisie powiązania danych "E - Powiązanie danych z wyrażeniem ogólnym".
© MICROSYS, spol. s r.o.