我应该使用 JSLint 还是 JSHint JavaScript 验证? [关闭]

2023-11-26

我目前正在根据 JSLint 验证我的 JavaScript 并取得进展,它帮助我编写更好的 JavaScript - 特别是在使用 Jquery 库方面。

我现在遇到了JSHint,一个叉子JSLint.
所以我想知道对于 Web 应用程序来说,这些应用程序很大程度上是由 JavaScript 驱动的,哪个是更好或最适用的验证工具:

  • JSLint 还是 JSHint?

我现在想决定一种验证机制,然后将其用于客户端验证。

jshint 和 jslint 之间的区别?请用单个 JavaScript 示例进行解释。

Links:

  1. jshint- http://www.jshint.com/

  2. jslint- http://jslint.com/


TL;DR

如果您正在为自己或您的团队寻找非常高的标准,请使用 JSLint,但请记住,这不一定the标准,仅a标准,其中一些教条地来自道格·克罗克福德(Doug Crockford)。

如果您想要更灵活一点,或者您的团队中有一些老专家不认同 JSLint 的观点,或者经常在 JavaScript 和其他 C 系列语言之间来回切换,请尝试 JSHint。

完整版

两篇关于分叉背后原因的文章解释了 JSHint 存在的原因:

  1. JSHint:社区驱动的 JSLint 分支

  2. 为什么我将 JSLint 分叉为 JSHint

JSLint 背后的想法是它是社区驱动的,而不是 Crockford 驱动的。 JSHint 通常对 JSLint 所坚持的一些风格和次要语法观点更加宽容(或者至少是可配置的或不可知的)。

例如,如果您认为两者1. and 2.以下都可以,或者如果您想使用以下一项或多项编写代码1.的方面不可用2., JSHint 适合您。如果你认为2.是唯一正确的选项,使用 JSLint。我确信还存在其他差异,但这突出了一些差异。

  1. 开箱即用地通过 JSHint - 失败 JSLint

    (function() {
      "use strict";
      var x=0, y=2;
      function add(val1, val2){
        return val1 + val2;
      }
      var z;
      for (var i=0; i<2; i++){
        z = add(y, x+i);
      }
    })();
    
  2. 通过 JSHint 和 JSLint

    (function () {
        "use strict";
        var x = 0, y = 2, i, z;
        function add(val1, val2) {
           return val1 + val2;
        }
        for (i = 0; i < 2; i += 1) {
            z = add(y, x + i);
        }
    }());
    

我发现 JSLint 代码在视觉上更具吸引力。我不同意它的唯一特征是超过一个人的仇恨var函数中的声明和for-loop var i = 0声明,以及函数声明的一些空白强制执行。

JSLint 强制执行的一些空白并不一定是坏事,只是与家族中其他语言(C、Java、Python 等)的一些相当标准的空白约定不同步,这些约定也经常在 Javascript 中遵循。由于我整天都在使用各种语言进行编写,并且与不喜欢代码中 Lint 样式空白的团队成员一起工作,因此我发现 JSHint 是一个很好的平衡。它捕获合法的错误和格式非常糟糕的代码,但不会像 JSLint 那样对我咆哮(有时,以我无法禁用的方式)针对我不关心的风格意见或语法挑剔。

许多优秀的库都无法进行 Lint'able,这对我来说表明 JSLint 的某些内容只是为了推动“优秀代码”的一个版本(实际上是优秀代码)这一想法是有一定道理的。但话又说回来,相同的库(或其他好的库)可能也无法提示,所以,touché。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该使用 JSLint 还是 JSHint JavaScript 验证? [关闭] 的相关文章

  • 将 OoXml 插入单词抛出错误:未知

    我一直在尝试通过office js将OOXML插入到word文档的正文内容中insertOoXML 方法 我什至尝试过最简单的实现 认为我在尝试替换 XML 本身中的 fieldCodes 时做了一些不正确的事情 所有结果都是这样Error
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐