首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jslint --edition=最新的意外ES6特性。常量

jslint --edition=最新的意外ES6特性。常量
EN

Stack Overflow用户
提问于 2016-03-20 00:23:39
回答 2查看 20.9K关注 0票数 22

为了保持代码的整洁,我尝试使用node-jslint https://github.com/reid/node-jslint

我的nodejs脚本中有一个const,但是jslint说它不是有效的ES6代码

代码语言:javascript
复制
 Unexpected ES6 feature.
const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0

下面是我在控制台中使用的命令

代码语言:javascript
复制
jslint --edition=latest index.js

根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const,可以使用全局常量。

为什么jslint不认为这段代码是有效的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-28 23:18:10

2020年的编辑: As ctrl-alt-delar mentions in a comment,正如答案中预测的那样,JSLint已经放弃了es6要求--它看起来像on 9 Oct 2017

也就是说,es6 is 不再是有效的JSLint选项。现在的OP代码会像这里写的那样:

代码语言:javascript
复制
/*jslint browser */
/*global process */
const pdPersonsFilterId = process.argv[2];

但是,如果您认为自己处于OP的情况下,则应确保您用来编译文件的任何进程都没有使用旧版本的JSLint。有些工具附带了过时的版本,或者您的构建脚本维护了一个较旧的版本,以免破坏遗留代码。如果你在这种情况下,下面的修复应该是有效的。

但是,如果您知道您的JSLint版本比2017年10月9日更新,并且出现es6错误,请打开一个新的StackOverflow问题!

对于最初的问题/旧版本的JSLint...

JSLint对ES6很满意;你只需要让它知道你在使用ES6。将es6指令添加到您的JSLint配置或文件顶部,然后获取利润。

代码语言:javascript
复制
/*jslint es6 */
const pdPersonsFilterId = process.argv[2];

现在,您看到的警告消失了。

来自JSLint's help

第六版的ECMAScript ES6可能需要时间才能普及。在没有完全实现新标准的环境中使用新功能将导致失败。这就是为什么在使用ES6特性时JSLint会给出警告。 ES6的一些功能很好,因此JSLint将使用es6选项识别ES6的好部分。随着新标准的实现变得更加稳定和更好地理解,JSLint识别的功能集可能会增加。在完成到ES6的转换后,将删除es6选项。 emph mine

看起来很公平。所以你所看到的只是警告你,你已经得到的可能在不支持ES6的地方不起作用,因为现在有很多地方。一旦ES6变得更加普及--或者如果您明确地让Crockford知道您打算使用ES6 --警告就会消失。(TJ的观点可能是,至少在Node中,是时候删除警告了。;^D)

票数 27
EN

Stack Overflow用户

发布于 2016-09-02 14:25:13

试试ESLint吧。

它在NPM上有更好的统计数据,文档很棒,而且被广泛使用。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36104136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档