Microsoft® JScript® ! Operator 
Language Reference Version 1

Performs logical negation on an expression.
result = !expressionThe ! operator syntax has these parts:
Part Description result Any variable. expression 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:
The operator is applied to the resulting number.
 If applied to undefined or null expressions, a runtime error is raised.
 Objects are converted to strings.
 Strings are converted to numbers if possible. If not, a runtime error is raised.
 Boolean values are treated as numbers (0 if false, 1 if true).
For the ! operator, if expression is nonzero, result is zero. If expression is zero, result is 1.