无用比较测试¶
ID: js/useless-comparison-test
Kind: problem
Security severity:
Severity: warning
Precision: high
Tags:
- correctness
Query suites:
- javascript-security-and-quality.qls
如果条件始终计算为真或始终计算为假,则通常表示代码不完整或存在潜在的错误,应仔细检查。
建议¶
检查周围的代码以确定条件冗余的原因。如果不再需要,请将其删除。
如果需要检查以防出现 NaN
值,请插入注释以解释 NaN
的可能性。
示例¶
以下示例查找数组给定切片中元素的索引
function findValue(values, x, start, end) {
let i;
for (i = start; i < end; ++i) {
if (values[i] === x) {
return i;
}
}
if (i < end) {
return i;
}
return -1;
}
但是,最后的条件 i < end
始终为假。如果删除冗余条件,可以使代码更清晰
function findValue(values, x, start, end) {
for (let i = start; i < end; ++i) {
if (values[i] === x) {
return i;
}
}
return -1;
}