Bitwise NOT Operator (~) (JavaScript)

Performs a bitwise NOT (negation) on an expression.


result = ~ expression  


Any variable.

Any expression.


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.

    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.

    The following example illustrates use of the bitwise NOT (~) operator.

var temp = ~5;  

The resulting value is -6, as shown in the following table.

Expression Binary value (two's complement) Decimal value
5 00000000 00000000 00000000 00000101 5
~5 11111111 11111111 11111111 11111010 -6


Supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards, Internet Explorer 9 standards, Internet Explorer 10 standards, Internet Explorer 11 standards. Also supported in Store apps (Windows 8 and Windows Phone 8.1). See Version Information.

See Also

Logical NOT Operator (!)
Operator Precedence
Operator Summary (JavaScript)