3

I have JSLint Plugin installed in Sublime Text 2. But i don't agree with some of the rules imposed by the JSLint specially this error on declaring variables inside a loop.

Move 'var' declarations to the top of the function.
    for (var i = 0; i < 100; i++) { // Line 12, Pos 10

My question is how can i override or disable this rule in JSLint on Sublime Text 2.

4

2 回答 2

3

如果你有Darren DeRidder 的插件(Sublime Text 有两个 JSLint 插件),你可以这样

您可以在首选项 -> 包设置 -> jslint -> 高级构建设置下设置任何 jslint 选项。有关 JSLint 中的选项列表,请参阅 http://www.jslint.com/lint.html#options

现在您将很难在循环中禁用var 声明。您可以将该vars 选项设置为 true,但是 JSLint 将允许您在页面上的任何位置拥有任意数量的 var 声明。这可能是一种误导性的做法,因为 JavaScript 有一些所谓的Function 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 不允许你这样做,但我认为你不走运,必须使用JSHint代替(这里似乎有一个 JSHint 的 Sublime 插件虽然我没有使用它)。

于 2013-05-03T22:00:53.107 回答
0

@chanHXC 使用 sublime-jslint 中的新默认选项跳过 var 声明警告。

于 2014-04-11T20:00:12.543 回答