JSLint 在下划线前缀变量名中报告“意外的悬空”字符

我知道有些人认为前置下划线的存在意味着一个变量是“私有的”,这样的隐私是虚构的,并假定这就是为什么 JSLint 报告这样的名称和错误消息。

我在一个正在建设的网站上使用谷歌分析,我参考了 GA 的变量,比如“ _ gaq”

我试图让我的 JS 代码100% JSLint 干净(我对我的编码风格并不虔诚,所以我会听从克罗克福德先生的建议)。也就是说,我不能对谷歌的变量名做任何事情... 所以,我想我不能得到100% “干净”

我在这里发布消息以防我误解了消息,并且可以做一些事情来遵循 JSLint 实践。

30869 次浏览

啊,我已经处理好了... ... 我用 JSLint 命令包装了使用下划线前缀变量的语句以禁用它们,然后重新启用这类错误:

/*jslint nomen: true*/
... statement(s) with _var ...
/*jslint nomen: false*/

JSLint 只是一个代码质量工具。没有完全通过它的测试并不意味着您的代码是糟糕的; 它只是意味着您没有遵循它的创建者规定的所有约定。尽管 JSLint 提出了很好的建议,但是并不总是能够实现所有的建议,特别是在使用未经测试的其他人的库时。与其在源代码中添加毫无意义的元注释,不如在检查代码时禁用“ Disallow dangling _ in Identifier”选项,因为在特定代码中使用这个选项似乎没有意义。

处理这个问题的最佳方法是启用“容忍 dangling _ in 标识符”(nomen)选项。详情请参阅 http://www.jslint.com/lint.html..。

我对 node.js 使用 JSLInt,您可以通过—— nomen 标志来绕过这个特性

jslint --nomen myfile.js