为什么JSHint抛出一个警告,如果我使用const?

这是我在使用const时得到的错误:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" />

我的代码是这样的:

const Suites = {
Spade: 1,
Heart: 2,
Diamond: 3,
Club: 4
};

代码工作良好,只有JSHint是警告我每次。

284791 次浏览

当依赖于ECMAScript 6特性(如const)时,你应该设置这个选项,这样JSHint就不会引发不必要的警告。

/*jshint esnext: true */ (编辑2015.12.29:更新语法以反映@Olga的评论)

/*jshint esversion: 6 */


const Suites = {
Spade: 1,
Heart: 2,
Diamond: 3,
Club: 4
};
这个选项,顾名思义,告诉JSHint你的代码使用ECMAScript 6特定的语法。 http://jshint.com/docs/options/#esversion < / p >

编辑2017.06.11:添加了另一个基于这个答案的选项。

虽然内联配置适用于单个文件,但您也可以通过在项目根目录中创建.jshintrc文件并将其添加到整个项目中来启用此设置。

{
"esversion": 6
}

我花了很长时间才修好它。每个解决方案都在谈论“设置选项”。我不知道那是什么意思。最后,我想明白了。你可以只在文件/*jshint esversion: 6 */的顶部包含一个注释的输出行。

Solution

你可以在你的应用程序的中添加一个名为.jshintrc的文件,其中包含以下内容,以便对整体解决方案应用此设置:

{
"esversion": 6
}

詹姆斯回答建议你可以为每一个文件添加注释/*jshint esversion: 6 */,但如果你需要控制许多文件,这是不必要的工作。

你可以在jshint options对象中指定esversion: 6。请看图片。我正在使用grunt-contrib-jshint插件。

enter image description here

在使用export语句时,我得到了同样的警告。我正在使用VS Code,并使用了类似于Wenlong Jiang的解决方案的方法。

  1. < p >用户设置

  2. < p > JSHint配置

  3. < p > "jshint.config": {}(编辑)

  4. 当指定"esversion"时使用双引号

    或者将这个片段复制到用户设置中:

    "jshint.options": {
    "esversion": 6,
    }
    

如果您想为编辑器配置全局jshint设置,则不需要创建.jshintrc文件

创建一个名为jshint_opts的文件,内容如下: { “esversion”:6 } < / p >

然后用如下命令行调用jshint:

——配置jshint_opts lib/*.js

如果你使用VSCode:

1.

  • 首选项 -> 设置 (cmd + ,)
  • 在搜索栏中输入jshint.options
  • 将鼠标悬停在上面,然后单击铅笔图标
  • 它现在被附加到右边。
  • "esversion": 6添加到options对象中。

2.

或者简单地添加到您的用户设置:

"jshint.options": {
"esversion": 6
}

新的vscode设置

  • 首选项 -> 设置 (cmd + ,)
  • 在搜索中输入jshint

VSCode Settings

  • 继续执行步骤2.

如果使用Sublime Text 3:

  • 首选项 -> 设置
  • Preferences.sublime-settings-User下添加“esversion”:6

当您开始使用ECMAScript 6时,此错误由您的IDE抛出。

有两种选择:

如果您只有一个文件,并且想使用es6,那么只需在文件顶部添加下面的行。

/*jshint esversion: 6 */

或者如果你有很多js文件,或者你正在使用任何框架(如nodejs express),你可以在根目录中创建一个名为.jshintrc的新文件,并在文件中添加下面的代码:

{
"esversion": 6
}

如果你想在每个项目中使用es6版本,你可以配置你的IDE。

如果你正在使用Webstorm,如果你没有自己的配置文件,那么只需在放松选项中启用EcmaScript.next

设置|语言&框架| JavaScript |代码质量工具| JSHint < / p >

请看这个问题How-do-I-resolve-these-JSHint-ES6-errors

如果您使用的是Grunt配置,您需要执行以下步骤

Jshint警告信息:

enter image description here

解决方案:

  1. 设置jshint选项并映射. jshintc .js文件

enter image description here

  1. 在该文件中创建.jshintrc.js文件,并添加以下代码
{
"esversion": 6
}

配置后,再次运行它将跳过警告,

enter image description here

在你的包裹里。你可以告诉Jshint像这样使用es6

"jshintConfig":{
"esversion": 6
}

在Dreamweaver的新版本中解决了这个错误

  • 进入“编辑->首选项->检测”
  • go-to js编辑规则集 和过去的< / p > < p > " jshintConfig ": { “esversion”:6 李}< / p > < / >

对于Mac上的SublimeText 3:

  1. 在根目录(或任何你喜欢的地方)创建一个.jshintrc文件,并指定esversion:
    # .jshintrc
{
"esversion": 6
}
  1. 引用刚才在升华用户设置中创建的文件的pwd (Sublime Text > Preference > Package Settings > Sublime elinter > Settings)
    // SublimeLinter Settings - User
{
"linters": {
"jshint": {
"args": ["--config", "/Users/[your_username]/.jshintrc"]
}
}
}
  1. 退出并重新启动SublimeText

这是我发现的一个简单的解决方案,它将解决我所有的项目,在windows上,如果你的项目在c:目录中的某个地方,创建新文件.jshintrc并将其保存在c目录中,打开这个.jshintrc文件并写入{ "esversion": 6},就是这样。警告应该消失,同样将工作在d目录

enter image description here

enter image description here 是的,你也可以通过在你的项目根目录下创建一个.jshintrc文件并添加{ "esversion": 6}

来为特定的项目启用这个设置

目录下创建.jshintrc文件,并在其中添加最新的js版本:"esversion": 9和asi版本:"asi": true(这将帮助你避免使用分号)

{
"esversion": 9,
"asi": true
}

要在Dreamweaver CC 2018中修复此问题,我转到 偏好, 编辑规则集-选择JS 编辑/应用的变化, 找到“esnext”并将false设置更改为true。 经过几个小时的研究,这个方法对我很有效。

创建.jshintrc文件是< >强没有必要< / >强

如果你正在使用ECMAScript 6,那么你所需要做的就是告诉JSHint:

  1. 文件比;设置
  2. 导航到语言,框架在JavaScript的在代码质量工具;JSHint
  3. 向下滚动找到警告与指定ECMAScript版本不兼容
  4. 单击
  5. 输入6,然后按(设置)
  6. 单击(好的)

我也遇到了同样的问题,我发现通过添加:

/* jshint esversion: 8 */

(或者你需要的任何jshint esversion,比如6)

我的.js文件的顶部满足了警告的原因。