Microsoft® JScript® ~ Operator 
Language Reference Version 1

Performs a bitwise NOT (negation) on an expression.
result = ~ expressionThe ~ operator syntax has these parts:
Part Description result Any variable. expression Any expression.
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).
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:
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.0101 (expression)  1010 (result)