## Booleans

A **Boolean** value has only two states, which can be thought of as:

- True or False
- 1 or 0
- On or Off

A Boolean simply represents the two *truth values* of logic.

Notion represents Boolean values with checked (true) and unchecked (false) checkboxes.

These resources aren’t necessary for understanding how to work with Booleans in Notion, but you may find them interesting if you want to dive deeper into how Booleans are used in programming and computer science.

## Operators

Operators are symbols that tell Notion’s formula engine to perform specific operations.

Here’s a very simple example:

```
2 + 2
```

Code language: JavaScript (javascript)

This statement uses the add (`+`

) operator to perform addition on two numbers. This formula will return a result of `4`

.

The numbers on each side of the `+`

operator are called **operands. **Operands are the discrete data objects that are either evaluated or manipulated by the operator.

In Notion formulas, operands have one of four data types – string, number, Boolean (checkbox), and date.

Operands can be hard-coded:

```
"Monkey D. Luffy will be " + "King of the Pirates!"
```

Code language: JavaScript (javascript)

They can also pass data from another database property:

```
prop("First Name") + prop("Last Name")
```

Code language: JavaScript (javascript)

You can also mix and match:

```
prop("First Name") + " " + prop("Last Name") + " will be King of the Pirates!"
```

Code language: JavaScript (javascript)

**Good to know: **Notion’s formula engine does not do automatic type conversion, so binary operators (operators with two operands) must have operands of the same data type.

E.g. `2 + "2"`

will throw a **Type Mismatch **error because one operand is a number and the other is a string. You must convert one or the other so they are of the same type.

Notion’s formula editor provides three types of operators:

- Mathematical operators
- Logical operators
- Comparison operators
- Ternary operator

### Mathematical Operators

Mathematical operators allow you to do math on numbers.

Here are all the mathematical operators Notion provides. Note that Notion also provides a function version of each one, which I’ve listed in the reference table.

Operator | Symbol | Function Version | Example |
---|---|---|---|

add | `+` | `add()` | `2 + 2` |

subtract | `-` | `subtract()` | `4 - 2` |

multiply | `*` | `multiply()` | `5 * 5` |

divide | `/` | `divide()` | `21 / 3` |

pow | `^` | `pow()` | `2 ^ 3` |

mod | `%` | `mod()` | `12 % 5` |

### Logical Operators

Logical operators return a Boolean value, and often allow you to combine and evaluate multiple expressions.

Notion provides three logical operators.

**Good to know: **Notion is no longer picky about how you must write logical operators. Alternate versions like `&&`

and `||`

will now work, and `and`

, `or`

, and `not`

are now case-insensitive.

Operator | Symbol | Function Version | Example |
---|---|---|---|

and | `and` `&&` | `and()` | `2 > 3 and 4 < 8` |

or | `or` `||` | `or()` | `2 > 1 || 6 > 5` |

not | `not` `!` | `not empty("Hello")` |

### Comparison Operators

Comparison operators allow you to compare operands that share a data type.

Notion provides six comparison operators:

Operator | Symbol | Function Version | Example |
---|---|---|---|

equal | `==` | `equal()` | `2 == 2` |

unequal | `!=` | `unequal()` | `4 != 2` |

Greater than | `>` | `5 > 3` | |

Greater than or equal | `>=` | `4 >= 4` | |

Less than | `<` | `6 < 9` | |

Less than or equal | `<=` | `9 <= 9` |

**Good to know: **Comparison operators cannot be **chained **in formulas.

E.g. `1 < 2 < 3`

will not work. Instead, use `1 < 2 and 2 < 3`

.

### Ternary Operator

The if operator – also known as the ternary operator – lets you create if-then statements and branching logic in Notion formulas.

Operator | Symbol | Function Version | Example |
---|---|---|---|

if | `?` and `:` | `if()` | `2==2 ? true : false` |

### Operator Precedence

Notion formulas can contain many operators, which can let you solve complex problems.

For example:

```
/* Output: true */
-((toNumber("5"))^2) < 20 - 10 ? true : false
```

Code language: JavaScript (javascript)

When multiple operators are present in a Notion formula, their order of execution is determined by Notion’s operator precedence rules: