我在测试浏览器兼容问题时,发现一个页面在chrome79上没有错误,但在chrome57上报错Uncaught SyntaxError: Unexpected token (
。
我没有查找到相关文档,但通过测试得知chrome57中js代码在三目运算语句中<expression>?<statement1>:<statement2>
中statement1
使用括号括起来且statement2
为数组赋值时(如a===0?(b=1):[c]=[2];
),则会报此错误,原因不明,考虑应该是chrome的bug。最后,修改一下写法即可修复此问题
测试代码:
test.html
<html>
<head>
<script type="text/javascript" src="../Desktop/test.js"></script>
</head>
<body>
</body>
</html>
test.js
function n(t) {
let l = 0;
t === 1 ?
(l = 1)
: [l] = [2];
}