我在jsLint中收到以下错误:
在定义之前使用了“文档”。
导致错误的行:
document.cookie = name + "=" + value + expires + "; path=/";
我明白为什么会发生这种情况,但我希望我的代码符合要求。
我该如何解决这个问题?
谢谢。
我在jsLint中收到以下错误:
在定义之前使用了“文档”。
导致错误的行:
document.cookie = name + "=" + value + expires + "; path=/";
我明白为什么会发生这种情况,但我希望我的代码符合要求。
我该如何解决这个问题?
谢谢。
地方
/*jslint browser:true */
在函数体的开头。或者,或者,您可以使用
/*global document: false */
JSLint 用于检查任何 javascript 代码,并且document
全局对象并不存在于任何地方,因此您必须手动告诉 JSLint 您的代码旨在在浏览器中执行,因此document
定义了全局变量。例如,对于服务器端 javascript,JSLint 应该报告此错误。
从 jslint 的网站,您可以了解 / global / 指令,该指令允许您设置假定在其他地方声明的变量。
这是一个示例(将其放在文件顶部):
/\*global var1,var2,var3,var4,var5\*/
或者,在starjava的情况下:
/\*global document\*/
我实际上不确定是否需要:true
or :false
,但看起来它是从我在网站上阅读的内容中推荐的。http://www.jslint.com/lint.html
确保初始全局语句与 位于同一行'/\*'
,否则它会中断。
如果您的所有 JS 代码都应该从浏览器运行,那么只需添加--browser
标志。
jslint --browser my.js
如果您使用的是节点可以添加以下行
/ * node JSLint: true * /
在脚本的开头 http://jslinterrors.com/a-was-used-before-it-was-defined/
在 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。