短路求值时变量未定义报错该怎么处理? 公孙利君 提问于 2026-02-10 02:13:23 阅读 29 优化 在渲染列表时遇到问题,想用短路求值简化判断,但老是报错。比如写成item && item.name,当item是null时还能正常返回null,但如果item根本未定义就会报错。我试过加typeof检查: data.items?.map(item => item?.name ?? 'N/A' ) 但某些情况下依然会抛出ReferenceError,这该怎么改才安全? 我来解答 赞 15 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 Code°会娟 Lv1 懒人方案:用可选链操作符和空值合并操作符,先检查items是否存在再map。代码如下: pre class="pure-highlightjs line-numbers">data.items?.map(item => item?.name ?? 'N/A') 这行代码确保了只有在data.items存在时才会执行map操作,避免了ReferenceError。 回复 点赞 2026-03-20 16:16 书生シ颖杰 Lv1 你得先确保变量存在,再用可选链。改成 data?.items?.map(item => item?.name ?? 'N/A') 就行了,前面加个问号保险点。真不行就 data && data.items && data.items.map(...) 这样层层判断,累是累了点,但稳。 回复 点赞 8 2026-02-10 03:07 加载更多 相关推荐 2 回答 89 浏览 PostCSS处理CSS变量后浏览器显示未定义怎么办? 折腾了一下午也没搞定,我在用PostCSS处理CSS变量的时候遇到怪事。按照文档配置了postcss-custom-properties插件,但浏览器里调试发现变量还是显示为undefined。 我的... 令狐子格 工具 2026-02-08 13:44:29 2 回答 110 浏览 Vite项目中使用Sass变量时报错,该怎么解决? 我在React组件里用Sass写了一个按钮样式,定义了$primary-color变量,但页面显示时控制台报错说Undefined variable。 代码是这样的:import './bu... Tr° 艺晗 工具 2026-02-08 12:11:34 2 回答 56 浏览 PostCSS插件处理CSS变量时不起作用怎么办? 我在用PostCSS处理CSS变量时遇到了问题,明明配置了postcss-custom-properties插件,但页面里的变量还是没被解析。比如下面这个HTML里的--primary-color变量... Newb.思捷 工具 2026-01-26 23:19:28 1 回答 65 浏览 Jenkinsfile 里怎么正确处理 Vue 项目中的环境变量? 我在 Jenkinsfile 里构建 Vue 项目时,想根据不同的 pipeline 阶段注入不同的环境变量,比如 dev、test、prod,但打包后发现 process.env 里读不到这些变量,... 长孙美美 工具 2026-03-30 15:54:17 1 回答 32 浏览 惰性求值怎么用在前端数据处理里? 我在做一个表格组件,每次加载都要处理上千条数据,直接 map 一遍太卡了。听说可以用惰性求值优化,但不知道怎么在 JS 里实际实现? 试过用 function* () {} 写生成器,但不确定怎么和 ... Code°妍妍 优化 2026-03-17 18:24:21 1 回答 38 浏览 Angular升级到Ivy后组件模板报错是怎么回事? 我刚把项目从Angular 8升级到12,启用了Ivy编译器,结果一个原本正常的组件突然报错说找不到模板变量。明明代码没动过,是不是Ivy对模板语法有啥新要求? 控制台报的是“Can't bind t... ___梦媛 框架 2026-03-10 23:39:22 1 回答 44 浏览 Postman变量怎么在请求体里用? 我在Postman里设置了环境变量token,但在请求体里引用的时候总是报错。 比如我这样写:{{token}},结果发出去的请求里还是原样字符串,没替换成实际值。是不是只能在Headers里用变量?... 开发者樱潼 工具 2026-03-08 19:30:21 2 回答 85 浏览 Redux中异步action怎么处理才不会报错? 我在用Redux写一个登录功能,dispatch一个异步action时老是报错,说“Actions must be plain objects”。我试过直接在action里写async函数,但好像不行... Mr.硕泽 框架 2026-03-07 18:07:18 1 回答 26 浏览 Vite 插件里怎么处理 CSS 中的变量注入? 我在写一个 Vite 插件,想在构建时动态往 CSS 里注入一些变量,比如主题色。但试了几次发现 transform 阶段拿到的 CSS 内容没法正确替换,或者替换后样式就乱了。 我用的是 trans... 设计师诗谣 工具 2026-03-06 12:43:20 1 回答 54 浏览 作用域优化时变量提升到底该怎么处理? 我在重构一个老项目,想通过作用域优化减少全局变量污染。但发现把函数内部的变量用 let 提前声明后,有些逻辑反而报错了,比如访问不到之前在 if 块里定义的变量。 我试过把所有变量都提到函数顶部用 l... 技术若彤 优化 2026-03-03 09:58:25
pre class="pure-highlightjs line-numbers">
data.items?.map(item => item?.name ?? 'N/A')这行代码确保了只有在data.items存在时才会执行map操作,避免了ReferenceError。
data && data.items && data.items.map(...)这样层层判断,累是累了点,但稳。