使用Parcel时出现reading 'forEach'类型错误报错如何解决
报错原因
- 数组声明语法不符合预期:你错误使用逻辑与运算符
&&替代了数组元素分隔符逗号,,写法['hashchange' && 'load']在JS中会先运算'hashchange' && 'load',由于两个非空字符串都是真值,运算结果返回'load',最终你得到的是仅包含'load'一个元素的数组,无法实现同时绑定两个事件的原有逻辑。 - 触发报错的直接原因是JS自动分号插入(ASI)机制的解析异常:如果这行代码的上一行末尾没有显式写分号,JS引擎会把这行开头的
[识别为对上一行返回值的属性访问操作,而非独立数组字面量。上一行返回值如果没有对应load属性,就会得到undefined,此时调用forEach就会抛出对应的类型错误。
修复方案
修正数组语法,同时补充分号规避ASI问题即可,修复后代码如下:
// 行首加分号可避免上一行无分号导致的解析错误 ;['hashchange', 'load'].forEach(ev => window.addEventListener(ev, controlRecipes))
内容的提问来源于stack exchange,提问作者RainbowWzrd
相关产品推荐
相关产品推荐

