我新建了一个简单的测试页 html 在 script 标签内写了 3 种情况的代码
情况1 注意 语句后面没有分号
[1,2].forEach(i=>console.log(i))//1,2
[1,2].forEach(i=>console.log(i))//报错
情况2 用一个去接收数组 同样语句后不加上分号
const arr = [1,2];
arr.forEach(i=>console.log(i))//1,2
arr.forEach(i=>console.log(i))//1,2
情况3 情况1的代码 但是执行语句后有分号
[1,2].forEach(i=>console.log(i));//1,2
[1,2].forEach(i=>console.log(i));//1,2
由于第一句没有分号,根据 ASI 算法会被解析成:
因而报错:
常见的处理分号的风格:
需要注意的类似情况:
()
可能被解析为函数调用[]
可能被解析成下标参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...