是否可以使用 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?的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins 与 JSLint 和 Violations 插件