【问题标题】:How to get rid of editor’s error for object.key如何摆脱 object.key 的编辑器错误
【发布时间】:2017-06-16 20:45:10
【问题描述】:

我有以下代码,它基本上获取一些 JSON 数据,查找带有“servergenre”的键,并将结果保存在一个数组中。 这是this question的后续行动。

let result = [];
        Object.keys(data).forEach( key => {
            if(/servergenre/.test(key)){
                result.push(data[key])
            }
        });

即使代码运行正常,在某些编辑器中也会引发语法错误:

  • key”:无法解析的变量或类型键
  • =>”:预期表达式
  • "if( / server...": 需要形式参数名称
  • ")){": , 预期
  • "});": 预期声明

这里有一张图片告诉你错误在哪里:

正如我所说的代码工作正常,我只需要修复它或其他方法来消除错误。

此外,许多压缩器和压缩器不支持这段代码。所以我不能缩小它。

提前致谢。

【问题讨论】:

  • 编辑器必须允许 ES6
  • 我不了解 ES6,但是由于这些错误,我无法压缩或缩小代码
  • 你必须使用支持 ES6 语法的编译器/压缩器,例如 Babel。
  • 告诉她如何在 IntelliJ 中设置语言级别 stackoverflow.com/questions/35772101/…
  • Rory O'Kane 明白了。我真的没有什么要补充的了。如果这是您正在寻找的解决方案,您可以将他的答案标记为已接受。很高兴我们能提供帮助 =)

标签: javascript jquery json syntax


【解决方案1】:

ES2015,以前称为 ES6,是 JavaScript 的更新版本,它为您正在使用的函数引入了 => 语法等功能。

并非所有浏览器都完全支持 ES2015 的所有功能,因此许多使用它的人首先通过编译器(“转译器”)将其转换为所有浏览器都支持的 ES5。 Babel 就是这样一种转译器。但是,如果您只针对较新的浏览器,那就可以解释为什么 => 语法对您有用。

您只需更改编辑器设置即可理​​解该语法。具体如何操作取决于您使用的文本编辑器。可能是您的编辑器的内置 JavaScript 模式不知道如何阅读 ES2015 语法,您需要升级您的编辑器或安装提供更新的错误检查器的第三方插件。或者可能是您的编辑器同时支持 ES5 和 ES2015,并且它认为您正在尝试仅在 ES5 中编写您的项目。在这种情况下,您只需转到设置并告诉您的编辑您的意思是让此项目使用 ES2015(或 ES2016,当前是最新版本)。

【讨论】:

  • 是的,已经很晚了,我没心情解释这一切:)
【解决方案2】:

粗箭头是 ES6 语法。如果这会引起麻烦,那就写好旧的 ES5:

let result = [];
Object.keys(data).forEach( function(key) {
      if(/servergenre/.test(key)){
           result.push(data[key])
      }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2022-10-19
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多