You need to enable JavaScript to run this app. JS代码报Uncaught TypeError: Cannot read property 'forEach' of undefined是什么原因?
优惠活动
大模型
产品
解决方案
定价
更多

JS代码报Uncaught TypeError: Cannot read property 'forEach' of undefined是什么原因?

报错原因

forEach 是仅数组类型支持的遍历方法,只有调用主体是数组时才能正常执行。你代码中调用 forEach 的主体是 btn.projectTechnologies,而你刚通过 document.createElement('li') 创建的原生DOM元素本身不存在 projectTechnologies 这个自定义属性,所以 btn.projectTechnologies 取值为 undefined,用非数组类型调用 forEach 就会触发该报错。
另外你的代码还存在多个逻辑错误:

  • 重复声明btn变量,会出现变量覆盖问题
  • 未定义techItem、projectTechnologies变量就直接调用,会触发新的未定义报错
  • 直接把整个技术栈数组赋值给li的文本,没有取当前遍历的单项值
修复方法

你的需求应为遍历project对象下的projectTechnologies技术栈数组,为每一项生成li元素插入到已创建的.lang-project列表容器中,修复后代码如下:

const langProject = document.createElement('ul');
langProject.classList.add('lang-project');
projectCardContent.appendChild(langProject);

// 遍历project下的技术栈数组,注意调用forEach的主体是数组
project.projectTechnologies.forEach((btnTech) => {
    const techItem = document.createElement('li');
    // 取当前遍历到的单项值赋值给文本
    techItem.innerText = btnTech;
    // 插入到之前创建的ul容器中
    langProject.appendChild(techItem);
});

内容的提问来源于stack exchange,提问作者Dare Akintoye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 22:54:05