返回语句赋值局部变量¶
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
在 return 语句中赋值局部变量是无用的,因为局部变量会立即超出范围,它的新值会丢失。
建议¶
仔细检查相关代码,以了解最初的意图。例如,赋值可能最初引用了另一个范围内的变量,由于重命名而意外地被隐藏了;在这种情况下,请执行另一个重命名以使其再次可见。或者,赋值可能是为了赋值给接收器对象的属性,而程序员无意中忘记了用this
限定它;通过提供所需的限定符来解决此问题。最后,赋值可能只是不必要的,在这种情况下,可以将其删除。
示例¶
在以下示例中,Person
的getName
方法包含对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();
};