Use explicit strict equality checks when testing for null or undefined values. Prefer x === undefined
over typeof x === 'undefined'
when the variable is known to exist. When checking for both null and undefined, use x == null
(loose equality) as it covers both cases, or check each explicitly with x === null || x === undefined
. Avoid using the ||
operator for fallback values when legitimate falsy values (like 0, false, or empty strings) are expected, as they will incorrectly trigger the fallback.
// Good - explicit undefined check
if (value !== undefined) {
return value;
}
// Good - covers both null and undefined
if (value != null) {
return value;
}
// Bad - unnecessary typeof when variable exists
if (typeof value !== 'undefined') {
return value;
}
// Bad - loses legitimate falsy values
return node.style.marginTop || node.style.margin; // 0 becomes fallback value
// Good - explicit existence check
return 'marginTop' in node.style ? node.style.marginTop : node.style.margin;
Enter the URL of a public GitHub repository