我正在尝试使用node-jslint https://github.com/reid/node-jslint以保持代码清洁
我的nodejs脚本中有一个const,但是jslint说它不是有效的ES6代码
Unexpected ES6 feature.
const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0
这是我在控制台中使用的命令
jslint --edition=latest index.js
根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const,可以使用全局常量。
为什么jslint不认为此代码有效?
答案 0 :(得分:14)
JSLint对ES6很满意;你必须让它知道你正在使用ES6。将es6
指令添加到您的JSLint配置或文件顶部,并获利。
/*jslint es6 */
const pdPersonsFilterId = process.argv[2];
现在你看到的警告就消失了。
第六版ECMAScript [ES6]可能需要一段时间才能达到 无处不在。使用环境中不完全的新功能 实施新标准将导致失败。这就是JSLint给出的原因 使用ES6功能时的警告。 ES6的一些功能很好, 因此,JSLint将使用es6选项识别ES6的优点。 As 新标准的实施变得更加稳定和更好 据了解,JSLint认可的功能集可能会增加。 转换到ES6完成后,es6选项将成为 放弃了。 [emph mine]
似乎很公平。所以你所看到的只是警告你,你所拥有的东西在ES6不受支持的情况下可能无效,因为现在很多地方都是如此。一旦ES6更广泛 - 或者如果你明确让Crockford知道你打算使用ES6 - 警告就会消失。 (TJ的观点可能是,至少在Node上,现在是删除警告的时候了。; ^ D)
答案 1 :(得分:12)