我目前正在针对 JSLint 验证我的 JavaScript 并取得进展,它帮助我编写更好的 JavaScript - 特别是在使用 Jquery 库时。
我现在遇到了 JSHint ,它是 JSLint 的一个分支。 所以我想知道 Web 应用程序,它们很大程度上是由 JavaScript 驱动的,这是更好或最适用的验证工具:
我现在想决定一个验证机制并继续前进,将其用于客户端验证。
以及 jshint 和 jslint 之间的区别?请在单个 javascript 示例中进行解释。
链接:
jshint - http://www.jshint.com/
jslint - http://jslint.com/
[编辑] 此答案已被编辑。我将在下面留下原始答案以获取上下文(否则评论将没有意义)。
最初提出这个问题时,JSLint 是 JavaScript 的主要 linting 工具。JSHint 是 JSLint 的一个新分支,但与原来的区别还没有太大。
从那时起,JSLint 几乎保持静止,而 JSHint 发生了很大变化——它抛弃了许多 JSLint 更具对抗性的规则,添加了大量新规则,并且总体上变得更加灵活。此外,现在还提供了另一个工具 ESLint,它更加灵活并且具有更多规则选项。
在我最初的回答中,我说你不应该强迫自己遵守 JSLint 的规则;只要你了解它为什么会抛出警告,你就可以自己判断是否更改代码以解决警告。
从 2011 年开始使用超严格的 JSLint 规则集,这是一个合理的建议——我见过很少的 JavaScript 代码集可以通过 JSLint 测试。然而,在今天的 JSHint 和 ESLint 工具中提供了更实用的规则,尝试让您的代码以零警告通过它们是一个更加现实的提议。
有时可能仍然存在 linter 会抱怨您故意做的某事的情况——例如,您知道应该始终使用===,但只有这一次您有充分的理由使用==. 但即便如此,使用 ESLint,您也可以选择eslint-disable在有问题的行周围进行指定,这样您仍然可以通过 lint 测试且警告为零,而其余代码则遵守规则。(只是不要经常做那种事情!)
===
==
eslint-disable
[原始答案如下]
一定要使用 JSLint。 但是不要挂断结果和修复它警告的所有内容。它将帮助您改进代码,并帮助您发现潜在的错误,但并非 JSLint 抱怨的所有问题都成为真正的问题,所以不要觉得您必须在零警告的情况下完成该过程。
几乎任何长度或复杂性很大的 Javascript 代码都会在 JSLint 中产生警告,无论它写得多么好。如果您不相信我,请尝试通过它运行一些流行的库,例如 JQuery。
一些 JSLint 警告比其他警告更有价值:了解哪些需要注意,哪些不太重要。应该考虑每个警告,但不要觉得有义务修复代码以清除任何给定的警告;查看代码并确定您对它感到满意是完全可以的;有时候,JSlint 不喜欢的事情实际上是正确的做法。