对局部变量的无用赋值¶
ID: js/useless-assignment-to-local
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- external/cwe/cwe-563
Query suites:
- javascript-security-and-quality.qls
一个值被分配给一个变量或属性,但该位置要么以后从未读取,要么在读取之前其值始终被覆盖。这意味着原始赋值没有效果,并且可能表明存在逻辑错误或代码不完整。
建议¶
确保您仔细检查方法中的控制流和数据流。如果一个值确实不需要,请考虑省略赋值。但要小心:如果右侧有副作用(例如执行方法调用),那么保持它很重要,以保留整体行为。
示例¶
在以下示例中,第 2 行对 `send` 的调用返回值被分配给局部变量 `result`,但从未使用。
function f(x) {
var result = send(x);
waitForResponse();
return getResponse();
}
假设 `send` 返回一个状态代码,指示操作是否成功,则应检查 `result` 的值,例如这样
function f(x) {
var result = send(x);
// check for error
if (result === -1)
throw new Error("send failed");
waitForResponse();
return getResponse();
}