JSLint:在定义之前使用过

时间:2012-03-08 16:29:17

标签: javascript undefined jslint

嗨,我有3个javascript文件。

  • 的jquery.js
  • utility.js
  • file1.js

在file1.js我有

jQuery.noConflict()
jQuery(document).ready(function($) { 
 // ....
});

我收到错误'jQuery'在定义之前使用过。 并且“文档”在定义之前使用。

如何安全地摆脱此警告。

如果我这样做

var document = document || {}; 

然后在我的utility.js中如果使用它,它在IE中将为null,在Firefox中为ok。

最佳解决方案是什么?

2 个答案:

答案 0 :(得分:169)

来自the documentation

  

JSLint还识别一个/ * global * /指令,该指令可以向JSLint指示此文件中使用的变量是在其他文件中定义的。注释可以包含逗号分隔的名称列表。每个名称可以后跟一个冒号,后跟true或false,true表示该变量可以由该文件赋值,false表示不允许赋值(默认值)。该指令尊重功能范围。

     

可以为您预定义一些全局变量。选择“假定浏览器(浏览器)”选项以预定义Web浏览器提供的标准全局属性,例如document和addEventListener。

示例:

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

答案 1 :(得分:31)

正如昆汀所说,有一个/*global*/指令。

这是一个例子(把它放在文件的顶部):

/*global var1,var2,var3,var4,var5*/

确保初始全局语句与/*位于同一行,否则它会中断。