# no-constant-condition

Disallow constant conditions which always yield one result.

Constant conditions such as if (true) {} are almost always a mistake. Constant conditions always yield a single result which almost always ends up in unwanted behavior. This rule is aimed at catching those conditions in if, do while, while, and for statements, as well as conditional expressions.

# Incorrect Code Examples

if (true) {
    //    ^ this block is always used
} else {
//^^^^ this else block is unreachable
}
// This loop endlessly runs
for(foo = 5; 5; foo++) {
}

# Correct Code Examples

if (foo) {
    /* */
}
More incorrect examples
if(6) {}
if(6 - 7 || 3 ? 7 && 2 : NaN + NaN || 2) {}
if (true) {}
if (NaN) {} else {}
6 + 2 ? false : NaN
false ? false : false ? false : false
while (true) {}
do { /* */ } while (NaN ? NaN : true)
do { } while (NaN ? Infinity : true)
More correct examples
if (foo) {}
if (false > foo) {} else {}
if (foo ? NaN : Infinity) {}
do {} while (foo + 6)
for(var i = 5; foo; i++) {}

Source (opens new window)

Last Updated: 11/18/2020, 9:36:33 PM