You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

JS代码跨浏览器及移动端运行异常,报Syntax error unexpected token '>'

问题排查与修复方案

嘿,这个报错Syntax error unexpected token '>'我太熟悉了——根源是你代码里用了ES6箭头函数,而部分旧浏览器(比如IE全系列,还有一些版本偏老的移动端浏览器)根本不支持这种语法特性,所以才会抛出语法错误。

具体问题点

你代码里的这两处箭头函数是罪魁祸首:

.then(response => response.json())
// 还有这里
.then(json => { /* ... */ })

箭头函数是ES6(ECMAScript 2015)才引入的新语法,旧环境没有实现它,浏览器在解析时看到=>就会认为是非法字符,直接报错。

修复后的代码

把箭头函数全部替换成传统的function写法,就能兼容所有主流浏览器(包括旧版本)了:

function req1() {
  fetch('https://jsonplaceholder.typicode.com/posts/1')
    .then(function(response) {
      return response.json();
    })
    .then(function(json) {
      var title = json.title;
      var body = json.body;
      document.getElementById("newsTitle").innerHTML = title;
      document.getElementById("newsContent").innerHTML = body;
      document.getElementById("newsContent2").innerHTML = body;
    });
}
req1();

额外建议

如果之后你还想使用更多ES6+的新特性(比如let/const、解构赋值等)同时保证兼容性,可以考虑用Babel这类转译工具,把现代JS代码转译成ES5兼容的版本,这样就能在各种旧环境里顺畅运行啦。

内容的提问来源于stack exchange,提问作者Crashy

火山引擎 最新活动