Performs a bitwise NOT (negation) on an expression.

*result* **=** **~** *expression*

#### Arguments

*result*
- Any variable.
*expression*
- Any expression.

#### Remarks

All unary operators, such as the **~** operator, evaluate expressions as follows:

- If applied to undefined or
**null** expressions, a run-time error is raised.
- Objects are converted to strings.
- Strings are converted to numbers if possible. If not, a run-time error is raised.
- Boolean values are treated as numbers (0 if false, 1 if true).

The operator is applied to the resulting number.

The **~** operator looks at the binary representation of the values of the expression and does a bitwise negation operation on it. The result of this operation behaves as follows:

0101 (expression)
----
1010 (result)

Any digit that is a 1 in the expression becomes a 0 in the result. Any digit that is a 0 in the expression becomes a 1 in the result.

#### Requirements

Version 1

#### See Also

! Operator | Operator Precedence | Operator Summary