多余的尾部参数¶
ID: js/superfluous-trailing-arguments
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- correctness
- language-features
- external/cwe/cwe-685
Query suites:
- javascript-security-and-quality.qls
JavaScript 中的函数调用可以将任意数量的参数传递给被调用的函数。如果被调用的函数声明的参数少于传递的参数,则剩余的参数只能通过 arguments
对象访问。因此,如果一个函数被传递了太多参数,但没有使用 arguments
对象,则剩余的参数将无用。此类调用通常表明重构不完整,或者可能表明对被调用函数功能的误解。
建议¶
如果多余的参数不必要,则将其移除。否则,可能需要进一步调查以确定如何更新函数调用。
示例¶
以下代码片段定义了一个函数 f
,该函数不声明任何参数,也不使用 arguments
对象。对 f
的唯一调用为其传递了一个参数 42
,该参数不会以任何方式被 f
使用,因此可以移除。
function f() {
var x = 23;
return x+19;
}
f(42);
参考资料¶
Ecma International, ECMAScript 语言定义,第 5.1 版,第 10 章。ECMA,2011 年。
常见弱点枚举:CWE-685.