对象扩展运算符在 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.io
和https://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浏览器安装谷歌浏览器系列外观主题