为啥 jslint 在模板字符串上抱怨 Unexpected '`'

Posted

技术标签:

【中文标题】为啥 jslint 在模板字符串上抱怨 Unexpected \'`\'【英文标题】:Why does jslint complain Unexpected '`' on template strings为什么 jslint 在模板字符串上抱怨 Unexpected '`' 【发布时间】:2021-06-11 14:58:57 【问题描述】:

我在 Vim 中使用 JSLint 和 syntastic,当我有一个简单的 .js 文件时

var a = 99;
var b = `I am $a years old`;

为什么 Syntastic(以及 jslint)会给我这个错误

Unexpected '`'

【问题讨论】:

因为您没有 Syntastic 配置的属性来识别有效(现代)语法。 因为json数据不应该有'`'字符 JSON 还是 javascript eslint.org/docs/rules/quotes @Phix 修复了它(它是 js) 【参考方案1】:

好的,我想你在问一个棘手的问题。使用最新版本的 JSLint,您的代码 lints 正常。

在jslint.com 上试用。

以前是JSLint didn't support es6 (ES2015) features out of the box,你必须明确告诉它你使用的是 es6。

直到 ES2015(又名 es6),leaves out many browsers 才出现模板文字 (`)。旧的 JSLint 副本假定您将 JavaScript 写入可能仅符合 es5 的浏览器,除非您告诉它您处于 ES2015 (es6) 模式。

所以尝试将/*jslint es6 */ 放在文件顶部,看看它是否会掉毛。

但更重要的是:更新您的 JSLint 版本。

【讨论】:

以上是关于为啥 jslint 在模板字符串上抱怨 Unexpected '`'的主要内容,如果未能解决你的问题,请参考以下文章

为啥 JSLint 会在这个函数上给出严格的违规错误?

括号中的 JSLint 表示未定义音频,但不抱怨图像

如何告诉 JSLint / JSHint 已经定义了哪些全局变量

为啥 JQuery 不通过 JSLint? [复制]

JSLint 消息:未使用的变量

如何告诉 JSLint 不要在单行 if 语句中要求