true is converted to the number 1 before being compared.
false is converted to 0 before being compared.
If either of the operands are 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 addresses 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