对象扩展运算符在 Microsoft Edge 中抛出错误

Posted

技术标签:

【中文标题】对象扩展运算符在 Microsoft Edge 中抛出错误【英文标题】:Object spread operator throw error in microsoft edge 【发布时间】:2020-06-24 08:21:04 【问题描述】:

我有代码:

let a = a: 'a', b: 'b';
let b = c: 'c', d: 'd';
let c = ...a, ...b;

chrome/firefox/... 中显示:c = a: 'a', b: 'b', c: 'c', d: 'd',但在 microsoft edge 中会抛出错误 Expected identifier, string or number

我尝试使用cdn.polyfill.iohttps://babeljs.io/docs/en/babel-polyfill,但没有成功。

如何在 microsoft edge 中运行我的 webpack 代码?

【问题讨论】:

你在使用 babel 吗?如果是,您可以发布您的 babel 配置吗? 请从这里查看兼容版本developer.mozilla.org/en-US/docs/Web/javascript/Reference/… Kornflexx,我不使用 babel 来编译我的代码,但我发现一些帖子可以包含 babel polifyls 作为脚本,因此我尝试使用它。 【参考方案1】:

它应该在 Edge 79 中可用,不需要任何转编译器(如 Babel)(但不是 IE,不要混淆它们)。

https://caniuse.com/#feat=mdn-javascript_operators_spread_spread_in_object_literals

也就是说,在大多数情况下,如果需要,您可以使用 Object.assign() 代替 -

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

您的代码将是:

let a = a: 'a', b: 'b';
let b = c: 'c', d: 'd';
let c = Object.assign(a,b)

console.log(c)

自 Edge 12 起支持Object.assign()

https://caniuse.com/#feat=mdn-javascript_builtins_object_assign

【讨论】:

Alex L,我的版本是Microsoft Edge 44.18362.449.0 Microsoft Edgehtml 18.18363,默认安装在系统上 完美,那么你可以使用Object.assign()没问题,从Edge 12开始支持:caniuse.com/#feat=mdn-javascript_builtins_object_assign【参考方案2】:

...obj 语法称为“Object Rest/Spread Properties”,它是 ECMAScript 2018 的一部分,Edge Legacy 不支持。您可以使用Babel 对其进行转译。

如果你只是想在非 Node.js 环境中使用它,你可以使用 babel-standalone。你只需要在你的脚本中加载 babel-standalone 并在 “text/babel”“text 类型的 script 标签中编写你想要转译的脚本/jsx”,Edge Legacy 中的结果将是"a":"a","b":"b","c":"c","d":"d"

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.1/babel.min.js"></script>
</head>
<body>
    <script type="text/babel">
        let a =  a: 'a', b: 'b' ;
        let b =  c: 'c', d: 'd' ;
        let c =  ...a, ...b ;
        console.log(JSON.stringify(c));
    </script>
</body>
</html>

【讨论】:

以上是关于对象扩展运算符在 Microsoft Edge 中抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

禁用 Microsoft Edge (Chromium) 开发人员模式扩展在启动时弹出

Chrome 扩展程序在调用 launchWebAuthFlow API 时使 Microsoft Edge 浏览器崩溃

下一个浏览器,全新Microsoft Edge

怎么给Microsoft Edge浏览器安装谷歌浏览器系列外观主题

微软公布 Microsoft Edge 路线图,将发布 Linux 版本

如何在 Microsoft Edge 中对精灵背景图像放大进行反锯齿处理?