【问题标题】:JSHint considers a for-in variable 'bad'. What does this mean?JSHint 认为 for-in 变量是“坏的”。这是什么意思?
【发布时间】:2012-05-02 18:55:29
【问题描述】:

以下代码:

var things = {'foo':'bar'}
for ( thing in things ) {
  console.log(thing)
}

在 jshint 中始终产生以下错误:

Bad for in variable 'thing'.

我不明白是什么让“事物”变量“不好” - 正如您所看到的,它没有在其他任何地方使用。我应该怎么做才能让 jshint 不认为这是一个错误?

【问题讨论】:

  • 它是全球性的,总是很糟糕(bad bad bad bad bad)。试试for( var thing in things)。不知道这是否是错误的原因:)
  • JSHint 希望 for in 变量在本地范围内定义(即不在外部函数中)。和这个问题有关:github.com/jshint/jshint/issues/329
  • 由于'bad'是如此模糊,我向 jshint 提交了一个拉取请求,以便它明确声明该变量是全局的。

标签: javascript syntax for-loop jshint


【解决方案1】:

它们总是 - 如果它们没有被声明。如果之前没有声明过thing,请尝试添加var

for ( var thing in things ) {
  console.log(thing)
}

var thing;

//more code

for ( thing in things ) {
  console.log(thing)
}

【讨论】:

  • 谢谢!我希望 jshint 会说“未声明的变量”而不是“错误的变量”——这样会更清楚。
【解决方案2】:

这是您的代码稍作修改,请确保在使用前声明所有代码。

var things = {'foo':'bar'}, thing;
for ( thing in things ) {
  console.log(thing)
}

【讨论】:

    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 2021-05-31
    • 2012-07-20
    • 2017-12-02
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多