CodeQL 文档

拼写错误的变量名称

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

单击以查看 CodeQL 存储库中的查询

如果对局部变量的引用意外拼写错误,则它将被解释为对隐式声明的全局变量的引用,这可能表明存在错误。即使这是故意的,也应避免这种情况,因为它会使代码难以阅读。

建议

更正拼写错误。

示例

以下代码段尝试遍历数组 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 年。

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