El operador == (or !=) lleva a cabo una conversión automática de tipos si es necesario. El operador === (or !==) no va a realizar ninguna conversión. En él se compara el valor y el tipo, que podría considerarse más rápido (jsPref) que ==.

[10] ==  10      // is true
[10] === 10      // is false

'10' ==  10      // is true
'10' === 10      // is false

 []  ==  0       // is true
 []  === 0       // is false

 ''  ==  false   // is true but true == "a" is false
 ''  === false   // is false