== vs. ===
var a = false; alert(a === 0); // prints false
That’s false. Even when both the zero and the variable are faulty the entire operation is false. Because the 0 is a number and the variable a is boolean, therefore their different types give us the answer. If there was a comparision only with == the result would be true:
var a = false; alert(a == 0); // prints true
It’s good when you expect some variable to match certain type to compare with ===. So the correct code is:
var a = false; alert(a === false); // prints true
Here the type of a compares with boolean. See the complete demo.