CodeQL 文档

重复参数名

ID: js/duplicate-parameter-name
Kind: problem
Security severity: 
Severity: error
Precision: very-high
Tags:
   - reliability
   - correctness
Query suites:
   - javascript-security-and-quality.qls

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

在非严格模式下,JavaScript 允许函数具有多个同名参数,其中后面的参数会屏蔽前面的参数。这是一个容易出错的功能,会使代码难以理解,应该避免。

建议

将参数重命名为不同的名称。

示例

在以下示例中,函数 f 具有两个名为 x 的参数,第二个参数可能是 y 的拼写错误。由于没有声明参数 y,因此在 f 的主体中使用 y 指的是同名的全局变量(如果存在)。

function f(x, x) {
	return x+y;
}

在严格模式下,重复的参数名是非法的。

参考资料

  • Ecma International,ECMAScript 语言定义,第 5.1 版,附录 C。ECMA,2011。

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