In JavaScript gibt es - wie beispielsweise auch in PHP - zwei Arten von Vergleichen: typschwache (type-converting comparison) und typstarke (strict comparison)
type-converting comparison bedeutet, dass die zu vergleichenden Variablen vor dem Vergleich in den selben Typ umgewandelt werden. So ist z.B. 1 == true wahr.

Man sollte es sich von vornherein angewöhnen, immer mit typstarken Vergleichen zu arbeiten, um Fehler auszuschließen.
Ansonsten erhält man nämlich z.B. folgende unerwünschte und unlogische Ergebnisse:
Douglas Crockford - JavaScript: The Good Parts
Code:
'' == '0'           // false
0 == ''             // true
0 == '0'            // true

false == 'false'    // false
false == '0'        // true

false == undefined  // false
false == null       // false
null == undefined   // true
Weiterführende Informationen: