The expression language supports operators to enable you to create more complex expressions.
Arithmetic Operators
Expressions based on arithmetic operators result in numerical values.
| Operator | Usage | Description |
|---|---|---|
| + | 1 + 1 | Add two numbers. |
| - | 2 - 1 | Subtract one number from the other. |
| * | 2 * 2 | Multiply two numbers. |
| / | 4 / 2 | Divide one number by the other. |
| % | 5 % 2 | Return the integer remainder of dividing the first number by the second. |
| - | -v.exp | Unary operator. Reverses the sign of the succeeding number. For example if the value of expenses is 100, then -expenses is -100. |
Numeric Literals
| Literal | Usage | Description |
|---|---|---|
| Integer | 2 | Integers are numbers without a decimal point or exponent. |
| Float | 3.14
-1.1e10
| Numbers with a decimal point, or numbers with an exponent. |
| Null | null | A literal null number. Matches the explicit null value and numbers with an undefined value. |
String Operators
Expressions based on string operators result in string values.
| Operator | Usage | Description |
|---|---|---|
| + | 'Title: ' + v.note.title | Concatenates two strings together. |
String Literals
String literals must be enclosed in single quotation marks 'like this'.
| Literal | Usage | Description |
|---|---|---|
| string | 'hello world' | Literal strings must be enclosed in single quotation marks. Double quotation marks are reserved for enclosing attribute values, and must be escaped in strings. |
| \<escape> | '\n' | Whitespace characters:
Escaped characters:
|
| Unicode | '\u####' | A Unicode code point. The # symbols are hexadecimal digits. A Unicode literal requires four digits. |
| null | null | A literal null string. Matches the explicit null value and strings with an undefined value. |
Comparison Operators
Expressions based on comparison operators result in a true or false value. For comparison purposes, numbers are treated as the same type. In all other cases, comparisons check both value and type.
| Operator | Alternative | Usage | Description |
|---|---|---|---|
| == | eq | 1 == 1
1 == 1.0
1 eq 1
| Returns true if the operands are equal. This comparison is valid for all data types. |
| != | ne | 1 != 2
1 != true
1 != '1'
null != false
1 ne 2
| Returns true if the operands are not equal. This comparison is valid for all data types. |
| < | lt | 1 < 2
1 lt 2
| Returns true if the first operand is numerically less than the second. You must escape the < operator to < to use it in component markup. Alternatively, you can use the lt operator. |
| > | gt | 42 > 2
42 gt 2
| Returns true if the first operand is numerically greater than the second. |
| <= | le | 2 <= 42
2 le 42
| Returns true if the first operand is numerically less than or equal to the second. You must escape the <= operator to <= to use it in component markup. Alternatively, you can use the le operator. |
| >= | ge | 42 >= 42
42 ge 42
| Returns true if the first operand is numerically greater than or equal to the second. |
Logical Operators
Expressions based on logical operators result in a true or false value.
| Operator | Usage | Description |
|---|---|---|
| && | isEnabled && hasPermission | Returns true if both operands are individually true. You must escape the && operator to && to use it in component markup. Alternatively, you can use the and() function and pass it two arguments. For example, and(isEnabled, hasPermission). |
| || | hasPermission || isRequired | Returns true if either operand is individually true. |
| ! | !isRequired | Unary operator. Returns true if the operand is false. This operator should not be confused with the ! delimiter used to start an expression in {!. You can combine the expression delimiter with this negation operator to return the logical negation of a value, for example,{!!true} returns false. |
Logical Literals
Logical values are never equivalent to non-logical values. That is, only true == true, and only false == false; 1 != true, and 0 != false, and null != false.
| Literal | Usage | Description |
|---|---|---|
| true | true | A boolean true value. |
| false | false | A boolean false value. |
Conditional Operator
There is only one conditional operator, the traditional ternary operator.
| Operator | Usage | Description |
|---|---|---|
| ? : | (1 != 2) ? "Obviously" : "Black is White" | The operand before the ? operator is evaluated as a boolean. If true, the second operand is returned. If false, the third operand is returned. |
No comments:
Post a Comment