重复参数名¶
ID: js/duplicate-parameter-name
Kind: problem
Security severity:
Severity: error
Precision: very-high
Tags:
- reliability
- correctness
Query suites:
- javascript-security-and-quality.qls
在非严格模式下,JavaScript 允许函数具有多个同名参数,其中后面的参数会屏蔽前面的参数。这是一个容易出错的功能,会使代码难以理解,应该避免。
建议¶
将参数重命名为不同的名称。
示例¶
在以下示例中,函数 f
具有两个名为 x
的参数,第二个参数可能是 y
的拼写错误。由于没有声明参数 y
,因此在 f
的主体中使用 y
指的是同名的全局变量(如果存在)。
function f(x, x) {
return x+y;
}
在严格模式下,重复的参数名是非法的。
参考资料¶
Ecma International,ECMAScript 语言定义,第 5.1 版,附录 C。ECMA,2011。