对属性的无用赋值¶
ID: js/useless-assignment-to-property
Kind: problem
Security severity:
Severity: warning
Precision: high
Tags:
- maintainability
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();
}
参考¶
维基百科:死存储。