千家信息网

JSLint和JSHint及ESLint的对比是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,JSLint和JSHint及ESLint的对比是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近在用React写项目,但是我的
千家信息网最后更新 2026年11月03日JSLint和JSHint及ESLint的对比是什么

JSLint和JSHint及ESLint的对比是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

最近在用React写项目,但是我的Vim配置之前并没有配置对JSX和ES6的支持,然后看着那堆报错各种不爽了,于是还是要继续折腾,顺便也增加了点知识,记录一下。

主流的JS Lint工具及介绍

JavaScript已经发展蛮长时间了,对应的Lint工具也是层出不穷,下面介绍一下比较主流的几个Lint工具(其实是我用过的几个XD)

JSLint

JSLint是由Douglas Crockford开发的,可能是最早的JavaScript Lint工具了吧,它的名字来源于著名的C语言工具Lint。老道把他认为的非Good Parts的部分都报了warning,而且在它的文档中也提到了你应该欣然接受所有的JSLint的建议。最近看了下,老道还在持续更新着这个项目,而且官网上也有着一个在线的体验工具,可以尝试一下。对了,如果想要使用这个工具,建议看看老道在YouTube上关于JavaScript编程风格的视频,讲的还是很幽默的。

JSHint

JSHint是由Anton Kovalyov基于JSLint的代码实现的开源项目,由于JSLint时期大多数人都在受JSLint压迫,JSHint相比较之下,更友好,也更容易配置,所以很快就发展了起来,也得到了众多IDE和编辑器的支持。但是,由于它是基于JSLint开发的,自然原有的一些问题它也继承下来了,比如不易扩展,不容易直接根据报错定位到具体的规则配置等,虽然之前好像是有过相关的讨论,但是现在仍然没有什么好的解决办法。好在它发展的不错,很多时候遇到的问题都可以在网上找到相关的解决方案,而且文档也是非常不错的。

ESLint

ESLint是由Nicholas C. Zakas在2013年开始开发的,它的初衷就是为了能让开发者能自定义自己的linting rules,而且它提供了一套相当完善的插件机制,可以自由的扩展,动态加载配置规则,同时可以方便的根据报错定位到具体的规则配置。而且我比较喜欢它的一点是文档非常详细,可能这也是灵活所必须的吧。在这里还要提一点,ESLint最初并不是为了造一个重复的轮子,而是作者在实际使用中的需求没有能得到JSHint团队的回应,所以他就结合当时的JSHint和另一个代码风格的检查工具JSCS写出来了现在具备代码风格检查,自定义插件扩展功能的ESLint了。

JSLint,JSHint和ESLint的对比

这三个工具各有特色,我只是做一下对比,选择的话,看个人需求就好了。

JSLint

优点

  • 配置是老道已经定好的,开箱即用。

不足

  • 有限的配置选项,很多规则不能禁用

  • 规范严格,凡是不符合老道所认为的好的风格的,都会有警告(这一项就看你是否完全认同老道了)

  • 扩展性差

  • 无法根据错误定位到对应的规则

JSHint

优点

  • 有了很多参数可以配置

  • 支持配置文件,方便使用

  • 支持了一些常用类库

  • 支持了基本的ES6

不足

  • 不支持自定义规则

  • 无法根据错误定位到对应的规则

ESLint

优点

  • 默认规则里面包含了JSLint和JSHint的规则,易于迁移(这肯定是故意的XD)

  • 可配置为警告和错误两个等级,或者直接禁用掉

  • 支持插件扩展

  • 可以自定义规则

  • 可以根据错误定位到对应的规则

  • 支持ES6

  • 唯一一个支持JSX的工具

不足

  • 需要进行一些自定义配置(因为太灵活了嘛,不过文档是很详细的)

  • 慢 (它比其他两个都要慢)

Vim支持

我们都使用Syntastic来配置

JSLint的Vim配置

有一个jslint.vim当然版本太老了。。我们不用这种方式做。

  • 安装jslint

sudo npm install jslint -g
  • 在vimrc中添加如下配置

    let g:syntastic_javascript_checkers = ['jslint']

JSHint的Vim配置

  • 安装jshint

    sudo npm install jshint -g
  • 在vimrc中添加如下配置

    let g:syntastic_javascript_checkers = ['jshint']
  • 也可以使用独立插件jshint.vim

ESLint的Vim配置

sudo npm install eslint -g
  • 在vimrc中添加如下配置

    let g:syntastic_javascript_checkers = ['eslint']

这里有个很重要的问题,记得要在添加一份配置文件,在官网或者在我vim配置的仓库可以找到

关于JSLint和JSHint及ESLint的对比是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

配置 规则 工具 支持 老道 问题 定位 插件 文档 错误 风格 开发 代码 优点 是由 项目 发展 不错 两个 主流 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 远信互联网科技 深圳互联网科技怎么样 北京三清互联网科技 互联网科技产品 青岛中康互联网医疗科技有限公司 宁波青枫互联网科技有限公司 福州新华互联网科技学校 知乎 栖莱科技互联网股份有限公司 黑科技闪耀互联网之光 厦门千工互联网科技有限公司 亳州好赞互联网科技有限公司 翼展科技 首家互联网医院 互联网相关科技技术 半导体行业属于互联网高科技类吗 互联网科技包装股份有限公司上市 科技互联网经济论坛 科技互联网公司两年变化 杭州科技互联网公司有哪些 上海互联网科技园景观 科技互联网企业在行动 广州万易互联网科技有限公司 互联网与新科技 银优互联网科技有限公司 碳银互联网科技有限公司 互联网科技论坛 重庆科技学院互联网 互联网科技革命什么开始 天津腾达互联网科技有限公司 洛阳共同富裕互联网科技有限公司 北京品多多互联网科技有限公司
0