CodeQL 文档

多余的尾部参数

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

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

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.

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