Lint Rules

noConstantCondition (since v12.1.0)

Disallow constant expressions in conditions

Examples

Invalid

if (false) {
    doSomethingUnfinished();
}
nursery/noConstantCondition.js:1:5 lint/nursery/noConstantCondition ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Unexpected constant condition.
  
  > 1 │ if (false) {
       ^^^^^
    2 │     doSomethingUnfinished();
    3 │ }
  
if (Boolean(1)) {
    doSomethingAlways();
}
nursery/noConstantCondition.js:1:5 lint/nursery/noConstantCondition ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Unexpected constant condition.
  
  > 1 │ if (Boolean(1)) {
       ^^^^^^^^^^
    2 │     doSomethingAlways();
    3 │ }
  
if (undefined) {
    doSomethingUnfinished();
}
nursery/noConstantCondition.js:1:5 lint/nursery/noConstantCondition ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Unexpected constant condition.
  
  > 1 │ if (undefined) {
       ^^^^^^^^^
    2 │     doSomethingUnfinished();
    3 │ }
  
for (;-2;) {
    doSomethingForever();
}
nursery/noConstantCondition.js:1:7 lint/nursery/noConstantCondition ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Unexpected constant condition.
  
  > 1 │ for (;-2;) {
         ^^
    2 │     doSomethingForever();
    3 │ }
  
while (typeof x) {
    doSomethingForever();
}
nursery/noConstantCondition.js:1:8 lint/nursery/noConstantCondition ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Unexpected constant condition.
  
  > 1 │ while (typeof x) {
          ^^^^^^^^
    2 │     doSomethingForever();
    3 │ }
  
var result = 0 ? a : b;
nursery/noConstantCondition.js:1:14 lint/nursery/noConstantCondition ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Unexpected constant condition.
  
  > 1 │ var result = 0 ? a : b;
                ^
    2 │ 
  

Valid

if (x === 0) {
    doSomething();
}

for (;;) {
    doSomethingForever();
}

while (typeof x === "undefined") {
    doSomething();
}

do {
    doSomething();
} while (x);

var result = x !== 0 ? a : b;