JSLint在下划线前缀变量名称中报告"意外悬空"字符

Zha*_*ami 73 javascript jslint

我知道有些人认为存在一个主要的下划线意味着变量是"私有的",这种隐私是虚构的,并且假设这就是为什么JSLint报告带有错误消息的名称.

我在我正在构建的网站上使用Google Analytics.我参考GA的变量,例如"_gaq".

我试图让我的JS代码100%JSLint干净(我不喜欢我的编码风格,因此将与Crockford先生的建议一起).也就是说,我对Google的变量名称无能为力......所以,我想我不能100%"干净".

我在这里发布,以防我误解了消息,并且可以采取一些措施来遵守JSLint的做法.

Zha*_*ami 72

啊,我得到了这个处理...我将使用下划线前缀变量和JSLint命令的语句包装为禁用,然后重新启用此类错误:

/*jslint nomen: true*/
... statement(s) with _var ...
/*jslint nomen: false*/
Run Code Online (Sandbox Code Playgroud)

  • -1.要禁用此警告,您需要先将nomen:设置为true,然后设置为false.来自jslint网站:"如果不应检查名称的初始或尾随下划线,则为true." (12认同)
  • 这不符合JSLint的做法; 它禁用检查该警告. (3认同)
  • 如果您使用像underscore.js这样的库,这将变得混乱.请改用`jslint --nomen <filename>`. (3认同)

小智 51

处理此问题的最佳方法是启用"容忍悬挂_标识符"(nomen)选项.有关详细信息,请访问http://www.jslint.com/lint.html

  • 这是问题的最佳答案.我希望jslint能够容忍下划线而不是_标识符...... (7认同)

小智 15

JSLint只是一个代码质量工具.没有完全通过测试并不意味着你的代码很糟糕; 它只是意味着你不遵循其创建者规定的所有约定.尽管JSLint提出了非常好的建议,但并不总是能够实现它们,特别是当使用未经过测试的其他人的库时.您应该使用禁用的"禁止悬挂_标识符"选项来检查您的代码,而不是使用无意义的元注释乱丢您的源代码,因为使用您的特定代码似乎没有意义.

  • 那么其他代码不依赖于违规的外部库呢?这是/*jslint指令的用途.这不是你必须在全球范围内做出的决定. (2认同)

Jas*_*eem 8

我在node.js中使用JSLInt.你可以通过--nomen flag来绕过这个功能

jslint --nomen myfile.js 
Run Code Online (Sandbox Code Playgroud)