为何这段JavaScript代码出现undefined及类型错误?
代码错误分析与修复
错误原因
- 调用
forEach时传参逻辑错误:你写的data.forEach(consoleItem())是直接执行了consoleItem函数,而非将函数本身作为回调传递给forEach。 consoleItem函数没有返回值(默认返回undefined),所以forEach实际接收的参数是undefined,这会触发报错;同时consoleItem执行时没有传入任何参数,内部的item、index、arr全为undefined,打印结果自然也是undefined。
解决逻辑
- 直接传递函数引用给
forEach,把consoleItem()改成consoleItem即可。这样forEach遍历数组时,会自动将当前元素、对应索引、原数组作为参数传给consoleItem,实现预期功能。
修复后的代码:
const data = ['1','2','3','4','6']; const consoleItem = (item, index ,arr) =>{ console.log(item); console.log(index); console.log(arr); } data.forEach(consoleItem)
内容的提问来源于stack exchange,提问作者Anil
相关产品推荐
相关产品推荐

