Logical NOT Operator (!)
Performs logical negation on an expression.
The following table illustrates how the result is determined.
If expression coerces to
Then result is
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.