是否可以使用 JSLint 验证我的 jQuery JavaScript?

Posted

技术标签:

【中文标题】是否可以使用 JSLint 验证我的 jQuery JavaScript?【英文标题】:Is it possible to validate my jQuery JavaScript with JSLint? 【发布时间】:2011-05-03 13:21:30 【问题描述】:

我想用 JSLint 检查我的 javascript。我也在用jQuery,JSLint似乎对jQuery很不满意。

所以,如果我有这个代码:

$(document).ready
    $("a").click(function() 
        // foo
    );
);

我收到了一些 JSLint 消息:

错误:

第 1 行字符 1 的问题:在定义之前使用了“$”。

$(document).ready

...

我查看了选项,但不知道如何告诉 JSLint 这没问题。

如果我的代码中只有一个 jQuery 调用,我可以忽略 JSLint 消息,但在 2,500 行脚本中有很多调用,我无法在所有这些消息之间找到我想要修复的错误。

那么,有谁知道如何配置 JSLint 以使其与 jQuery 调用一起使用?或者还有什么我可以用来检查我的 JavaScript/jQuery 代码质量的东西吗?

【问题讨论】:

【参考方案1】:

这不是有效的 JavaScript,应该是:

$(document).ready(function() 

所以 JSLint 会(适当地)抱怨你的语法。

如果您想删除Implied global: $, document 消息,请转到它具有预定义(,分隔) 的底部,然后将jQuery, $ 放入该文本框中,然后再次运行。对于 document 部分,请在第一列中选​​中 Assume a browser

所有 JSLint 设置都会保留,因此您不必每次返回时都执行此操作。

【讨论】:

为避免出现警告,您可以在代码中添加: /*node browser: true */ /*global $ */ jslint 不接受隐含的全局变量,让 jslint 停止抱怨的唯一方法是放置 /*jslint browse: true, continue : true, devel : true, indent : 4, maxerr : 50 , newcap : true, nomen : true, plusplus : true, regexp : true, sloppy : true, vars : true, white : true *//*global jQuery: false, $: false */ 在文件顶部。不知道是不是mac上的chrome今天表现得很有趣,但是当我在全局区域输入jQuery和$时,它不起作用?【参考方案2】:

将其添加到文档顶部以对其进行验证:

/*jslint browser: true*/ /*global  $*/

【讨论】:

感谢您关注实际问题。我有同样的一个,语法正确,这很成功。 即使在 2018 年,我也一直在快速寻找这个并在这里找到它。假设代码很好,它恰好回答了这个问题。【参考方案3】:

尼克关于你的语法是正确的。最新版本的 jQuery (1.4.3) 通过了 JSLint 测试。见这篇博文:http://blog.jquery.com/2010/10/16/jQuery-143-released/

【讨论】:

我想他问的是他自己的使用 jQuery 的代码,而不是 jQuery 本身。

以上是关于是否可以使用 JSLint 验证我的 jQuery JavaScript?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JSLint 并遵循它是不是有意义? [关闭]

Jenkins 与 JSLint 和 Violations 插件

使用 JSLint 进行 CRM 4.0 Javascript 验证

JSLint:在定义之前使用

为啥 JQuery 不通过 JSLint? [复制]

是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?