javascript - IE11 报告 [...a] 的语法错误
问题描述
在 chrome 和 firefox 中,这不是问题,但 IE11 在这一行给我一个语法错误 1002:
let aCopy = [...a];
但我不明白解决方案是什么。Babel 给了我这个巨大的输出:
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var aCopy = _toConsumableArray(a);
谁能告诉我这实际上意味着什么?
解决方案
IE 11 不支持可迭代对象的扩展语法(使用稀疏数组,在数组文字中)。它需要一个 js 编译器将 [...array] 转换为 es5 代码(https://github.com/babel/babel/issues/4922)。请参考https://kangax.github.io/compat-table/es6/#test-spread_syntax_for_iterable_objects
推荐阅读
- api - REST API - 一对零或一关联
- node.js - Firebase Cloudfirestore 更新集合中的元素
- node.js - 查找和更新数组 Mongoose 中的单个元素
- c++ - DetourDetach() 抛出 ERROR_INVALID_BLOCK 错误
- android - Kotlin 如何将额外的 Activity 放到 Service
- flutter - 使用 BottomNavigation 栏时如何实现每个屏幕都有 Scaffold 小部件?
- java - 线程“main”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:Pig Latin 为 -1
- python - 加载 .pb Tensorflow 模型时出错
- python-3.x - 需要通过 mock 在本地测试 Python Google Cloud Function
- laravel - 在 laravel 中获取对象的集合