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;