如何声明可通过JSLint校验的for循环迭代器变量
解决JSLint提示"Unexpected 'let'"的问题
我之前也碰到过JSLint这种严格到“让人头疼”的规则限制,你的问题核心其实是没有在JSLint的配置里显式启用ES6语法支持——虽然JSLint确实支持ES6,但它默认会沿用更保守的ES5规则,除非你明确告诉它可以用新特性。
具体解决步骤:
- 在代码最顶部的JSLint注释里添加
es6选项,告诉它允许ES6语法(包括let声明)。 - 确保你的配置注释同时保留
for选项(因为你需要启用for循环支持)。
修改后的代码示例:
/*jslint for, es6 */ function test() { "use strict"; for (let i = 0; i < 5; i += 1) { console.log(i); } }
为什么这能解决问题?
JSLint的设计理念是“强制最佳实践”,它不会默认启用所有新语法,哪怕它支持这些特性。你之前只开启了for循环的允许项,但let属于ES6新增的语法,必须单独通过es6配置项(或者单独的let配置项)来允许它。
另外,如果你是在JSLint网页端校验,也可以在界面的设置里找到“Allow ES6 syntax”的勾选框,不过用代码注释的方式更可靠——不管在哪运行,代码本身就能通过校验。
内容的提问来源于stack exchange,提问作者run_the_race
相关产品推荐
相关产品推荐

