我在Sublime Text 2中安装了JSLint插件。但是我不同意JSLint强加的一些规则,特别是这个错误在循环中声明变量。
Move 'var' declarations to the top of the function.
for (var i = 0; i < 100; i++) { // Line 12, Pos 10
我的问题是如何在Sublime Text 2上的JSLint中覆盖或禁用此规则。
答案 0 :(得分:3)
如果您有Darren DeRidder's plugin(Sublime Text有两个JSLint插件),则执行this:
您可以在首选项下设置任何jslint的选项 - &gt;包 设置 - &gt; jslint - &gt;高级建筑设置。看到 http://www.jslint.com/lint.html#options获取选项列表 JSLint的。
现在,您将很难在循环中禁用只 var声明。您可以将vars
option变为true,但随后JSLint将允许您在页面的任何位置拥有任意数量的var声明。这可能是一种误导性的做法,因为JavaScript有些人称之为Function Scope和"hoists" declarations to the top of their scope。
编辑:唉,我骗了。 vars
只允许多个var声明语句,但它们仍然必须位于函数的顶部。它只允许你这样做:
function fnTest() {
var i;
var j; // Oh boy! Two var statements at the TOP of the same function
for (i = 0; i < 100; i++) {
j++;
}
}
而不是
function fnTest() {
var j;
for (var i = 0; i < 100; i++) { // still can't do this.
j++;
}
}
虽然我很惊讶Crockford不允许你这样做,我认为你是out of luck,而且必须使用JSHint代替(似乎有一个Sublime插件{{3}虽然我还没用过它。)
答案 1 :(得分:0)
@chanHXC使用sublime-jslint中的新默认选项跳过var声明警告。