Comparing dissimilar types using the strict equality operators ===
and !==
will always return the same value,
respectively false
and true
, because no type conversion is done before the comparison. Thus, such comparisons can only be
bugs.
Noncompliant Code Example
var a = 8;
var b = "8";
if (a === b) { // Noncompliant; always false
// ...
}
Compliant Solution
var a = 8;
var b = "8";
if (a == b) {
// ...
}
or
var a = 8;
var b = "8";
if (a === Number(b)) {
// ...
}