Si conoces JS, sabrás que existe un estatuto === y otro ==. Para la mayoría de las personas ambos estatutos son iguales, o uno lo usan unicamente para evaluar Strings. Curiosamente existen casos que se dan de manera común donde los resultados son totalmente diferentes. Te invito a hacer la prueba en la consola de Chrome o en Firebug de estos comandos

console.log( '' == '0' );          // false
console.log( 0 == '' );            // true
console.log( 0 == '0' );           // true
console.log( false == 'false' );   // false
console.log( false == '0' );       // true
console.log( false == undefined ); // false
console.log( false == null );      // false
console.log( null == undefined );  // true
console.log( " trn " == 0 );    // true

Ahora sustituye el == por ===, gran cambio ¿Cierto?.