今天用jsbin跑了一个简单的测试程序

代码逻辑是对的,但是还是报错,一开始特别疑惑

这是报错的源代码

const arr = new Set()
[2, 3, 5, 4, 5, 2, 2].forEach(item=>arr.add(item))

for(let i of arr){console.log(i)}

报错如下

"TypeError: Cannot read properties of undefined (reading 'forEach')
    at gujuhohiha.js:6:23
    at https://static.jsbin.com/js/prod/runner-4.1.8.min.js:1:13924
    at https://static.jsbin.com/js/prod/runner-4.1.8.min.js:1:10866"

通过测试发现了,第一行加上一个;就解决报错了,程序就可以正常运行

要是光看报错的信息(Cannot read properties of undefined无法读取未定义的属性)很容易被误导,会让你以为是forEach出了什么问题,其实只是因为你没有用;来分隔程序,导致编译器无法正确解读你的程序,所以报错了。

所以着告诉我们一个道理

写程序要注意细节和规范!!!!!能规避很多不必要的错误

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐