IE浏览器对ES6不兼容的问题(语法错误、Promise未定义、
Symbol未定义)
1.
js assign问题:
vue项⽬在ie11下⼀⽚空⽩并报Symbol 未定义的错
原因:
  IE10浏览器解析不了es6的语法,需要我们使⽤babel(Babel是⼀种⼯具链,主要⽤于将ECMAScript 2015+代码转换为当前和旧版浏览器或环境中的向后兼容版本的JavaScript)。但是Babel 默认只转换新的 JavaScript 句法(syntax),⽽不转换新的 API ,⽐如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及⼀些定义在全局对象上的⽅法(⽐如 Object.assign)都不会转码。
解决:
1.在vue项⽬中安abel-polyfill
polyfill指的是“⽤于实现浏览器不⽀持原⽣功能的代码”,⽐如,现代浏览器应该⽀持fetch函数,对于不⽀持的浏览器,⽹页中引⼊对应fetch的polyfill后,polyfill就给全局的window对象上增加⼀个fetch函数,让这个⽹页中的JavaScript可以直接使⽤fetch函数了,就好像浏览器本来就⽀持fetch⼀样。
npm install --save-dev babel-polyfill
2.在mian.js中引⼊babel-polyfill(要在引⼊vue,vuex,elementui 之前引⼊)
  import 'babel-polyfill';
  重启项⽬,正常显⽰啦!
  注意: vue不持之ie8 以及之前的版本
2。
  在做VUE项⽬中⼤家可能会发现除了IE内核浏览器之外项⽬都能正常显⽰,但是到IE就萎了,这主要是IE不⽀持ES6的原因。
  要解决这个我们要先引⼊browser.js,这样你可以使⽤ES2015(javascript下⼀代标准,具体可以看)进⾏编码。
1 2<script src="/browser.min.js"></script>
<script src="/files.js"type="text/babel"></script>
  引⼊之后在你的js⽂件加上type="text/babel",加上之后你会发现这个时候可以⽀持ES6的语法了。  但是~你会发现⼜会报⼀个错误:Error in mounted hook: "ReferenceError: “Promise”未定义"
  这个时候我们在项⽬前⾯再引⼊polyfill.js
1<script src="/polyfill.min.js"></script>
  这样就可以解决了
  最后给⼤家browser.min.js和polyfill.min.js的源码
  browser.min.js源码:
  polyfill.min.js源码: