Logical operators in JavaScript — how do you use them?

javascript, logical-operators

Solution

All values in JavaScript are either “truthy” or “falsy”.

- `a && b` evaluates to the first falsy operand,

- `a || b` evaluates to the first truthy operand.

Both operators will not evaluate any operands after the one the return. If all operands don’t match, they will evaluate to the last one.

- `!a` evaluates to `true` if `a` is falsy and `false` if `a` is truthy.

All values are truthy except the following, which are falsy:

- `null`

- `undefined`

- `false`

- `+0`

- `-0`

- `NaN`

- `0n`

- `""`

- `document.all`

Problem

I don't understand how `&&`, `||`, and `!` work... both with bools and other data types. How do you use them?

Original source

Related problems