JSLint 中迭代器变量的声明被标记为警告

Posted

技术标签:

【中文标题】JSLint 中迭代器变量的声明被标记为警告【英文标题】:Declaration of iterator variable in JSLint is flagged as warning 【发布时间】:2019-06-23 22:08:01 【问题描述】:

如何为通过 JSLint.com 验证的循环变量声明迭代器。

我尝试过 var、let,但都不起作用。我将脚本简化为这一行。 JSlint.com 不会超过此警告。用谷歌搜索并尝试了我能想到的所有 for 循环组合。我启用了允许循环,并阅读了 JSlint nazi 帮助指南。

/*jslint
 for
*/
function test() 
    "use strict";
    for (let i = 0; i < 5; i += 1) 
        console.log(i);
    

JSLint.com 标志:

Unexpected 'let'.
    for (let i = 0; i < 5; i += 1) 

这不是一个未使用的变量问题。为了证明这一点,我将其更改为控制台日志 i,唯一的变量,无论是否在严格模式下,它都会给出相同的错误。JSLint 确实支持 ES6

【问题讨论】:

JSLint unused variable error的可能重复 jslint 是否支持 ES6 let 关键字?尝试改用 eslint。 JSlint 支持 let 关键字,但必须要么全部用 let,要么全部用 var,不能混用。 @zero298 这不是未使用的变量问题。为了证明这一点,我将其更改为控制台日志 i,唯一的变量,无论是否在严格模式下,它都会给出相同的错误。 @Bergi JSLint 确实支持 ES6 【参考方案1】:

根据 JSlint http://www.jslint.com/help.html#for JSLint 不推荐使用 for 语句。请改用 forEach 之类的数组方法。 for 选项将抑制一些警告。 JSLint 接受的 for 的形式受到限制,不包括新的 ES6 形式。 编辑 : 如果您启用

,则此方法有效
function test()
let i = 0;
for (i = 0; i < 5; i += 1) 
       console.log(i);
    

【讨论】:

谢谢,这是根本原因!稍微调整一下就完全了。功能测试()“使用严格”;让我;对于 (i = 0; i

以上是关于JSLint 中迭代器变量的声明被标记为警告的主要内容,如果未能解决你的问题,请参考以下文章

装饰器生成器迭代器

是否可以在没有迭代器变量的情况下实现 Python for range 循环?

FindBugs 警告:使用 keySet 迭代器而不是 entrySet 迭代器效率低下

函数进阶——闭包,装饰器,生成器,迭代器

为啥迭代器指向的数据在从列表中删除后保留

Iterator invalidation(迭代器失效)