【发布时间】:2012-12-04 11:47:52
【问题描述】:
我已经使用 JSLint 验证我的 JavaScript 大约 2 年了,偶尔会有一些规则发生变化。一般来说,当 JSLint 引入新规则时,有一个复选框可以在解析时忽略此规则,或者如果您选择不忽略它,则使您的代码符合它。
但是,当我今天运行 JSLint 验证时,我遇到了以下两个新错误:
使用空格,而不是制表符。
这不是“混合制表符和空格”错误。我只使用标签。这是“混合制表符和空格”的最近修改版本,现在一般不允许使用制表符。
还有:
不安全的字符。
*/
不安全的字符。
_const: {
没有可以忽略的新选项。我无法理解关闭块注释有什么不安全的地方,为什么它认为 _const: { 当我有 nomen: true 时不安全,(在标识符中悬挂 _)或者为什么我应该突然从空格切换到制表符,当我仍然有关于缩进4个空格作为制表符的配置。
有没有人知道为什么这些被引入至少如何让 JSLint 忽略这些新规则?
更新:
Messy White Space 选项可以解决此问题,但会导致其他意外行为:
if (condition) {
// ^-- there is a space but it won't indicate an error
【问题讨论】:
-
请发布您的 linter 配置。
-
*/ 在 JSLint 中被认为是不安全的,因为 JSLint 的创建者认为在每一行上使用 // cmets 比块 cmets 更安全,因为如果你不小心放了人为错误的机会“*/” 在您的评论中并过早关闭该块。就个人而言,我忽略它。
-
@Dawn 我不是只在那一行得到它,我会用另一个更没有意义的地方更新。
-
这与正则表达式和
/**/注释有关,它可能会被*/之类的正则表达式绊倒。所以 Douglas Crockford 很遗憾你应该使用//单引号。他们注释掉了整行(在刹车线之间),或者如果你把它们放在一行上,从//到行尾的所有代码。 -
如果换行符被意外地从你的代码中删除了,那么
//会注释掉文件的其余部分,而/* */不会,所以说第一个更安全是有点天真。
标签: javascript jslint