CodeQL 文档

对局部变量的无用赋值

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

点击查看 CodeQL 仓库中的查询

一个值被分配给一个变量或属性,但该位置要么以后从未读取,要么在读取之前其值始终被覆盖。这意味着原始赋值没有效果,并且可能表明存在逻辑错误或代码不完整。

建议

确保您仔细检查方法中的控制流和数据流。如果一个值确实不需要,请考虑省略赋值。但要小心:如果右侧有副作用(例如执行方法调用),那么保持它很重要,以保留整体行为。

示例

在以下示例中,第 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();
}

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私