拼写错误的变量名称¶
ID: js/misspelled-variable-name
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- readability
- correctness
Query suites:
- javascript-security-and-quality.qls
如果对局部变量的引用意外拼写错误,则它将被解释为对隐式声明的全局变量的引用,这可能表明存在错误。即使这是故意的,也应避免这种情况,因为它会使代码难以阅读。
建议¶
更正拼写错误。
示例¶
以下代码段尝试遍历数组 ids
以更新由数组元素引用的 DOM 节点。但是请注意,循环的上限指定为 lenght
,它是局部变量 length
的拼写错误。在运行时,lenght
将评估为 undefined
,因此检查 i < lenght
将始终失败,并且循环主体将永远不会执行。
function selectElements(ids) {
for (var i=0, length=ids.length; i<lenght; ++i) {
var id = ids[i];
if (id) {
var element = document.getElementById(id);
element.className += " selected";
}
}
}
应通过将 lenght
替换为 length
来更正拼写错误。
参考¶
D. Crockford:JavaScript: The Good Parts,附录 A:糟糕的部分,全局变量。O’Reilly,2008 年。