【问题标题】:JSHint: "Unexpected 'var'" in For Loop [duplicate]JSHint:For循环中的“意外'var'”[重复]
【发布时间】:2020-01-22 03:34:40
【问题描述】:

我在我的 Javascript 代码上运行 JSHint 来尝试清理它,它给了我这个警告:

 #3 Unexpected 'var'.
    for (var i = 0; i < self.myArray.length; i++) { // Line 88, Pos 14

扩展一下,就是这段代码:

self.myFunction = function() {
    for (var i = 0; i < self.myArray.length; i++) {
        // Do some stuff
    }
};

我在互联网上搜索过很多方法来编写for 循环。有些使用var,有些不使用,有些使用let等。

我似乎找不到任何关于 JSHint 期望我如何构建我的 for 循环的信息。谁能启发我一些最佳实践,或者 JSHint 正在寻找什么?

谢谢! :)

【问题讨论】:

  • 这能回答你的问题吗? Why does not JSLint allow "var" in a for loop?
  • 是的,这就回答了!像这样编写我的循环修复了范围问题和 JSHint 错误(我认为):``` self.myFunction = function() { var i; for (i = 0; i

标签: javascript jshint


【解决方案1】:

如果您使用var,那么它会将变量创建为封闭的函数作用域或全局作用域(如果不在函数内部)。

所以总是在for循环中使用let,作用域只会在for循环内。

self.myFunction = function() {
    for (let i = 0; i < self.myArray.length; i++) {
        // Do some stuff
    }
};

【讨论】:

  • 我不相信这能解决问题,至少标准的 JSLint 仍然会抱怨。
  • 这肯定会解决范围问题,但我仍然从 JSHint Unexpected 'let'. 收到此错误。
猜你喜欢
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 2013-05-30
  • 1970-01-01
  • 2021-01-03
  • 2022-08-10
  • 2014-08-30
相关资源
最近更新 更多