我应该使用JSLint还是JSHint JavaScript验证?
我目前正在根据JSLint验证我的JavaScript,并在这方面取得进展,它帮助我编写更好的JavaScript,特别是在使用Jquery库时 我现在遇到了JSHint,一种JSLint我应该使用JSLint还是JSHint JavaScript验证?,javascript,jslint,jshint,Javascript,Jslint,Jshint,我目前正在根据JSLint验证我的JavaScript,并在这方面取得进展,它帮助我编写更好的JavaScript,特别是在使用Jquery库时 我现在遇到了JSHint,一种JSLint 因此,我想知道web应用程序是由JavaScript驱动的,哪种验证工具更好或最适用: JSLint还是JSHint 我想现在就决定一个验证机制,接下来,使用它进行客户端验证 jshint和jslint之间的区别是什么?请用一个javascript示例进行解释 链接: jshint- jslint- 我要
因此,我想知道web应用程序是由JavaScript驱动的,哪种验证工具更好或最适用:
- JSLint还是JSHint李>
我要提出第三个建议,也是第三个建议。你可以在网上试试 闭包编译器是使JavaScript下载和运行更快的工具。它是一个真正的JavaScript编译器。它不是从源语言编译成机器代码,而是从JavaScript编译成更好的JavaScript。它解析JavaScript,分析它,删除死代码,重写并最小化剩下的代码。它还检查语法、变量引用和类型,并警告常见的JavaScript陷阱
[编辑]
此答案已编辑。我把下面的原始答案留给上下文(否则这些评论就没有意义了) 最初提出这个问题时,JSLint是JavaScript的主要linting工具。JSHint是JSLint的一个新分支,但与最初的分支没有太大的区别 从那时起,JSLint基本上保持了静态,而JSHint却发生了很大的变化——它抛弃了许多JSLint的更具对抗性的规则,添加了大量新规则,并且总体上变得更加灵活。此外,现在还提供了另一个工具ESLint,该工具更加灵活,具有更多的规则选项 在我最初的回答中,我说你不应该强迫自己遵守JSLint的规则;只要您理解它抛出警告的原因,您就可以自己判断是否更改代码以解决警告 对于2011年的JSLint的超严格规则集,这是一个合理的建议——我看到很少有JavaScript代码集能够通过JSLint测试。然而,由于现在的JSHint和ESLint工具中提供了更实用的规则,因此尝试让代码在零警告的情况下通过它们是更现实的建议 偶尔也会有人抱怨你故意做的事情——例如,你知道你应该总是使用
==
,但这一次你有很好的理由使用=
。但即使如此,使用ESLint,您也可以选择在所讨论的行周围指定ESLint disable
,这样您仍然可以在零警告的情况下通过lint测试,其余代码都遵守规则。(只是不要经常做那种事!)
[原始答案如下] 务必使用JSLint。但不要对结果和它警告的所有问题都挂断电话。它将帮助您改进代码,并帮助您发现潜在的bug,但并非JSLint抱怨的所有问题都是真正的问题,因此您不必在没有警告的情况下完成此过程 几乎任何长度或复杂度很高的Javascript代码都会在JSLint中产生警告,不管它写得有多好。如果你不相信我的话,试着通过它运行一些流行的库,比如JQuery 一些JSLint警告比其他警告更有价值:了解哪些警告需要注意,哪些警告不那么重要。每一个警告都应该被考虑,但不要觉得有义务修改代码来清除任何给定的警告;查看代码并确定您对其满意是完全可以的;有时候,JSlint不喜欢的事情实际上是正确的;外卖博士: 如果您正在为自己或团队寻找一个非常高的标准,JSLint。但它不一定是标准,只是一个标准,其中一些标准是从一个名为Doug Crockford的javascript之神那里教条般地带给我们的。如果你想更灵活一些,或者你的团队中有一些不相信JSLint观点的老专家,或者经常在JS和其他C族语言之间来回走动,那么试试JSHint 长版本: fork背后的推理很好地解释了JSHint存在的原因: 所以我想这是“社区驱动”而不是Crockford驱动。在实践中,JSHint对于JSLint所坚持的一些风格和次要句法“观点”通常更为宽容(或者至少是可配置的或不可知的) 例如,如果您认为下面的A和B都很好,或者如果您想用A的一个或多个方面编写代码,而这些方面在B中是不可用的,那么JSHint适合您。如果你认为B是唯一正确的选择。。。杰斯林特。我肯定还有其他不同之处,但这突出了一些 A) 将JSHint传递出去-JSLint失败
(函数(){
“严格使用”;
变量x=0,y=2;
功能添加(val1、val2){
返回val1+val2;
}
var z;
对于(var i=0;i嗯,我们可以在JS文件本身的顶部包含所有lint设置,而不是手动设置
声明该文件中的所有全局变量,如:
/*global require,dojo,dojoConfig,alert */
/*jslint browser:true,sloppy:true,nomen:true,unparam:true,plusplus:true,indent:4 */
声明所有lint设置,如:
/*global require,dojo,dojoConfig,alert */
/*jslint browser:true,sloppy:true,nomen:true,unparam:true,plusplus:true,indent:4 */
希望这能对您有所帮助:)几周前,我遇到了同样的问题,当时正在评估JSLint和JSHint
与这个问题的答案相反,我的结论不是:
务必使用JSLint
或:
如果你是我
{
"preset": "jquery",
"requireCurlyBraces": null
}
npm install --save standard
"scripts": {
"test": "node_modules/.bin/standard && echo put further tests here"
},