You don’t have to be a JavaScript novice to get confused by this…
if ([0]) { console.log([0] == true); //false console.log(!![0]); //true }
or this…
if ("potato") { console.log("potato" == false); //false console.log("potato" == true); //false }
The good news is that there is a standard and all browsers follow it. Some authors will tell you to fear coercion and and code against it. I hope to persuade you that coercion is a feature to be leveraged (or at the very least understood), not avoided…
Continue reading “Truth, Equality and JavaScript”