---
schema_version: "1"
id: f674b6138974194ca6310d673dfa65acadfaee32149a252998be1a79b3d6afbe
title: Expression Operators Reference
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/platform/aura-platform/guides/aura/expr/expr-operators.md
canonical_url: https://developer.salesforce.com/docs/platform/aura-platform/guide/expr-operators.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2136249546834a857573c47ac0150db91464383524907c55bfb6f250d7f74c41
products:
  - Lightning Aura Components Developer Guide
  - Platform Developer Content
---

# Expression Operators Reference

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: `\t` (tab), `\n` (newline), or `\r` (carriage return). Escaped characters: `\"` (literal "), `\'` (literal '), or `\\` (literal \\).     |
| 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 `&lt;` 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 `&lt;=` 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.                                                                                                                      |

`undefined==null` evaluates to `true`.

**warning:** Don’t use the `==` operator for objects, as opposed to basic types, such as Integer or String. For example, `object1==object2` evaluates inconsistently on the client versus the server and isn’t reliable.

## Logical Operators

Expressions based on logical operators result in a `true` or `false` value.

| Operator     | Usage                                | Description                                                                                                                                                                                                                                                                                                                                                               |
| ------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `&amp;&amp;` | `isEnabled &amp;&amp; hasPermission` | Returns `true` if both operands are individually true. If you have more than two arguments, you can chain multiple `&amp;&amp;` operations. This syntax is awkward in markup so we recommend the alternative of using the `and()` function when you have two arguments. For example, `and(isEnabled, hasPermission)`. The `and()` function only works with two arguments. |
| `\|\|`       | `hasPermission \|\| isRequired`      | Returns `true` if either operand is individually true. If you have more than two arguments, you can chain multiple `\|\|` operations. You can alternatively use the `or()` function when you have only two arguments. The `or()` function only works with two arguments.                                                                                                  |
| `!`          | `!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. |

**See Also**

- [Expression Functions Reference](https://developer.salesforce.com/docs/platform/aura-platform/guide/expr-functions.md)
