我在 jsLint 中收到以下错误:
'document'在定义之前就已使用过。
导致错误的行:
document.cookie = name + "=" + value + expires + "; path=/";
我知道为什么会这样,但我希望我的代码符合要求。
如何解决此问题?
感谢。
答案 0 :(得分:47)
放置
/*jslint browser:true */
在你的函数体的开头。或者,您也可以使用
/*global document: false */
JSLint用于检查任何javascript代码,并且document
全局对象在任何地方都不存在,因此您必须手动告诉JSLint您的代码旨在在浏览器中执行,因此{{1全局变量已定义。例如,对于服务器端javascript,JSLint应该报告此错误。
答案 1 :(得分:2)
从jslint的网站上,您可以阅读一个/ 全局 /指令,它允许您设置假定在其他地方声明的变量。
这是一个例子(把它放在文件的顶部):
/\*global var1,var2,var3,var4,var5\*/
或者,在starjava的情况下:
/\*global document\*/
我不确定是否需要:true
或:false
,但看起来我建议从网站上阅读。 http://www.jslint.com/lint.html
确保初始全局声明与'/\*'
位于同一行,否则会中断。
答案 2 :(得分:0)
如果您正在使用节点,可以添加以下行
/ * node JSLint: true * /
在脚本的开头 http://jslinterrors.com/a-was-used-before-it-was-defined/
答案 3 :(得分:0)
如果您的所有JS代码都应该从浏览器运行,那么只需添加--browser
标志。
jslint --browser my.js
答案 4 :(得分:0)
在cli模式下,您可以使用配置文件:
的 jslint.conf 强>
{
"predef": [
"module",
"require",
"window",
"document",
"jQuery",
"Backbone",
"Marionette",
"Modernizr",
"_",
"setTimeout",
"clearTimeout",
"setInterval",
"clearInterval"
],
"evil":false,
"indent":4,
"vars":true,
"passfail":false,
"plusplus":false
}
并使用带有--config jslint.conf
参数的jslint。