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