# JavaScript Operators

> Learn how JavaScript operators combine expressions into more complex ones, from binary operators like addition to unary operators and the ternary operator.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2019-07-06 | Topics: [JavaScript](https://flaviocopes.com/tags/js/) | Canonical: https://flaviocopes.com/javascript-operators/

Operators allow you to get one or more simple expressions and combine them to form a more complex expression.

We can classify operators based on the operands they work with. 

Most operators work with 2 operands:

- Addition (`+`)
- Subtraction (-)
- Division (/)
- Remainder (%)
- Multiplication (*)
- Exponentiation (**)
- Assignment (=)
- [Comparison operators](https://flaviocopes.com/javascript-comparison-operators/) (`<`, `<=` etc)
- [Equality checks](https://flaviocopes.com/javascript-equality-operators/) (`==`, `!==` etc)
- [Logical `and` and `or`](https://flaviocopes.com/javascript-logical-operators/)
- [`instanceof`](https://flaviocopes.com/javascript-instanceof-operator/)
- [`in`](https://flaviocopes.com/javascript-in-operator/)

Some operators work with 1 operand:

- Increment (`++`)
- Decrement (`--`)
- Unary negation (`-`)
- Unary plus (`+`)
- Logical not (`!`)
- `new`
- `delete`
- [`typeof`](https://flaviocopes.com/javascript-typeof-operator/)
- [`await`](https://flaviocopes.com/javascript-async-await/)
- The [spread operator](https://flaviocopes.com/javascript-spread-operator/)

Just one operator works with 3 operands: the [ternary operator](https://flaviocopes.com/javascript-ternary-operator/).
