Javascript 我在IE中遇到语法错误,但在Chrome中没有

Javascript 我在IE中遇到语法错误,但在Chrome中没有,javascript,cookies,Javascript,Cookies,所以我有一个在Google Chrome/Fire Fox中运行的代码(一个函数),但在IE中不起作用。如果我评论这一行,除了那一行是至关重要的之外,一切都正常运行 我有一个名为ReadCookie的函数,它基本上只是将Cookie存储到一个名为cookiearray的数组中 function ReadCookie() { var allcookies = document.cookie; //variable called "allcookies" stores all the cookie

所以我有一个在Google Chrome/Fire Fox中运行的代码(一个函数),但在IE中不起作用。如果我评论这一行,除了那一行是至关重要的之外,一切都正常运行

我有一个名为ReadCookie的函数,它基本上只是将Cookie存储到一个名为cookiearray的数组中

function ReadCookie() {

var allcookies = document.cookie; //variable called "allcookies" stores all the cookies.
cookiearray = allcookies.split(';').map(c => c.split('=')[1]); //cookiearray is an array that has all the values as strings.

}
IE说第四行不正确
cookiearray=allcookies.split(';').map(c=>c.split('=')[1])

谢谢

我相信这是一个ECMA脚本6,与您使用地图的方式一致

所以你可以这样写:

cookiearray = allcookies.split(';').map(function (c) {
  return c.split('=')[1];
}); //cookiearray is an array that has all the values as strings.

(如
c=>c.split('=')[1]
)是ES6中的一个新特性。Chrome支持它们。Internet Explorer没有。

我实现的解决方案如下

  • 后藤:

  • 粘贴代码并选择es2015

  • 如果您使用的是forEach(IE中同样不支持),请在新代码中粘贴以下内容:

    if(window.NodeList&!NodeList.prototype.forEach){ NodeList.prototype.forEach=Array.prototype.forEach; }

  • 使用indexOf而不是includes


  • 例如,您还可以尝试将来ES7工作草案中的语法。如果你真的想让你的产品代码正常工作,你可以坚持使用标准的JS语法和方法来代替。@Bekimbacj或使用transpiler.:D