LOGICAL-EXPRESSION 1g 2023-04-21 laplante@plcb.ca GOWEB/Language


title: “LOGICAL-EXPRESSION” author: “laplante@plcb.ca” date: 2023-04-21 version: “1.0.0” section: “1g”

category: “GOWEB/Language”

Name

LOGICAL-EXPRESSION — Boolean evaluation and comparisons

Description

A logical expression evaluates to a boolean result: true or false.

Logical expressions can be used:

Type coercion and evaluation rules

Supported types

You can also compare arrays and maps for equality (==) or inequality (!=).

Strict equality

Strict equality (===) and inequality (!==) check both value and type.

Example:

"5" !== 5   // true, because one is a string and the other is an integer

BNF

logical_expr:   expression > expression |
                expression >= expression |
                expression < expression |
                expression <= expression |
                expression == expression |
                expression != expression |
                expression === expression |
                expression !== expression |
                expression && expression |
                expression || expression |
                ! expression

Examples

res = {{
    1 < 2;
    2 > 1;
    1 <= 1;
    1 >= 1;
    1 == 1;

    3 < 2;
    0 > 1;
    3 <= 1;
    0 >= 1;
    0 == 1;
}};

// Result:
res = truetruetruetruetruefalsefalsefalsefalsefalse

res = {{
    1 == 1;
    1.0 == 1.0;
    "1.0" == "1.0";
    null == true;
    null == false;
    6 == null;
    6.1 == null;
    "6.1" == null;
    false == null;
    true == null;
    true == true;
    false == false;
}};

// Result:
res = truetruetruefalsefalsefalsefalsefalsefalsefalsetruetrue

res = {{
    1 != 1;
    1.0 != 1.0;
    "1.0" != "1.0";
    null != true;
    null != false;
    6 != null;
    6.1 != null;
    "6.1" != null;
    false != null;
    true != null;
    true != true;
    false != false;
}};

// Result:
res = falsefalsefalsetruetruetruetruetruetruetruefalsefalse

res = {{
    1 <= 1;
    1.0 <= 1.0;
    "1.0" <= "1.0";

    1 <= 5;
    1.0 <= 5.0;
    "1.0" <= "5.0";

    5 <= 1;
    5.0 <= 1.0;
    "5.0" <= "1.0";
}};

// Result:
res = truetruetruetruetruetruefalsefalsefalse

res = {{
    1 < 1;
    1.0 < 1.0;
    "1.0" < "1.0";

    1 < 5;
    1.0 < 5.0;
    "1.0" < "5.0";

    5 < 1;
    5.0 < 1.0;
    "5.0" < "1.0";
}};

// Result:
res = falsefalsefalsetruetruetruefalsefalsefalse

res = {{
    1 >= 1;
    1.0 >= 1.0;
    "1.0" >= "1.0";

    1 >= 5;
    1.0 >= 5.0;
    "1.0" >= "5.0";

    5 >= 1;
    5.0 >= 1.0;
    "5.0" >= "1.0";
}};

// Result:
res = truetruetruefalsefalsefalsetruetruetrue

res = {{
    1 > 1;
    1.0 > 1.0;
    "1.0" > "1.0";

    1 > 5;
    1.0 > 5.0;
    "1.0" > "5.0";

    5 > 1;
    5.0 > 1.0;
    "5.0" > "1.0";
}};

// Result:
res = falsefalsefalsefalsefalsefalsetruetruetrue

See also

Version