forEach 循环问题

来源:2-7 数组的各种遍历方式

powerful_girl

2021-04-22

老师您好。
官网上有介绍 forEach 前面可以直接写数组,但是我这里输出后确报错

图片描述

图片描述

把 forEach 前面的 [1,2,3,3] 改为先用 let 定义,然后写为 arr.forEach 就能正常输出。

想请问真的可以这样写么?
[1,2,3,3].forEach(function(i){
if(i===2){
return
}else {
console.log(i)
}
})

谢谢老师帮忙解答

写回答

3回答

powerful_girl

提问者

2021-04-23

用 barbel 解析出来的两行代码确实合到一起了。为啥会这样

//img.mukewang.com/szimg/6082052109c6825811270318.jpg

0
0

powerful_girl

提问者

2021-04-23

老师我找到代码的错误原因了。如果我先定义了一个 

let arr=[1,2,3,3]

就会报错。

//img.mukewang.com/szimg/6082023609b5f33012520312.jpg

但是如果我给 let 后面加一个;就不会有这样的错误了

//img.mukewang.com/szimg/6082025909756afe12000236.jpg


不太理解,是解析的时候把 let 那行和 forEach 那行连在一起了么。但是您不是说每行代码可以省略分号的么?

0
0

谢成

2021-04-22

代码是可以正常执行的:
//img.mukewang.com/szimg/6080d01a0903c73612760610.jpg
0
1
powerful_girl
老师,我看了 babel 的解析是,是因为没有加 ; 让两句话连在一起了。详见上面的回复。能帮忙解释一下,大部分情况每行其实不用加;了,但是什么情况下还需要添加吗?
2021-04-25
共1条回复

JavaScript ES(6-11)全版本语法 前端都需要的基础课

前端无门槛学习,从ES6到ES11,一套课程掌握JS最新语法

1328 学习 · 296 问题

查看课程