CodeQL 文档

返回语句赋值局部变量

ID: js/useless-assignment-in-return
Kind: problem
Security severity: 
Severity: warning
Precision: very-high
Tags:
   - maintainability
   - readability
   - external/cwe/cwe-563
Query suites:
   - javascript-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

在 return 语句中赋值局部变量是无用的,因为局部变量会立即超出范围,它的新值会丢失。

建议

仔细检查相关代码,以了解最初的意图。例如,赋值可能最初引用了另一个范围内的变量,由于重命名而意外地被隐藏了;在这种情况下,请执行另一个重命名以使其再次可见。或者,赋值可能是为了赋值给接收器对象的属性,而程序员无意中忘记了用this限定它;通过提供所需的限定符来解决此问题。最后,赋值可能只是不必要的,在这种情况下,可以将其删除。

示例

在以下示例中,PersongetName方法包含对name的无用赋值。

function Person(first, last, age) {
	this.first = first;
	this.last = last;
	this.age = age;
}

Person.prototype.getName = function() {
	var name = first + " " + last;
	return name = name.trim();
};

赋值没有任何明显目的,应删除

function Person(first, last, age) {
	this.first = first;
	this.last = last;
	this.age = age;
}

Person.prototype.getName = function() {
	var name = first + " " + last;
	return name.trim();
};

参考资料

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