Logical NOT Operator (!) (JavaScript)

Performs logical negation on an expression.


result = !expression  


Any variable.

Any expression.


The following table illustrates how result is determined.

If expression is Then result is
True False
False True

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.

    For the ! operator, if expression is nonzero, result is zero. If expression is zero, result is 1.


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

Bitwise NOT Operator (~)
Operator Precedence
Operator Summary (JavaScript)