JavaScript and Microsoft JScript attempt to convert the expressions to the same data type before evaluating the not equal operation using the following rules:
True is converted to the number 1, and false is converted to zero before being compared.
If either of the operands is NaN, the equality operator returns false.
Null and undefined are equal.
Null and undefined are not equal to 0 (zero), "" , or false.
If a string and a number are compared, attempt to convert the string to a number and then check for equality.
If an object and a string are compared, attempt to convert the object to a string and then check for equality.
If an object and a number are compared, attempt to convert the object to a number and then check for equality.
If both operands of an equality operation are objects, the address of the two objects are checked for equality.
Quote from:
Pure JavaScript (Paperback)
by R. Allen Wyke (Author), Jason Gilliam (Author), Charlton Ting (Author)
# Paperback: 1448 pages
# Publisher: Sams; 1st edition (August 1999)
# Language: English
# ISBN-10: 0672315475
# ISBN-13: 978-0672315473