Expression Operators Reference
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.
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. |