React TypeScript中添加空值检查后是否会影响性能?
React+TypeScript中空值检查的性能疑问解答
你这段代码里的空值检查完全不会带来性能问题,原因很简单:
- 空值判断
language && ...是极轻量化的布尔操作,哪怕处理上万条数据,对性能的影响也可以忽略。 - 真正可能产生微小开销的是
toLowerCase()字符串转换,但你原代码里重复调用了两次,这点可以优化下,既提升代码可读性,还能减少一次不必要的转换。
给你整理了更简洁高效的版本:
import { filter } from 'lodash'; ... return filter(channels, ({ language }: Channels) => { // 全选直接放行 if (selectedCategory === 'all') { return true; } // 无language字段直接过滤 if (!language) { return false; } const lowerLang = language.toLowerCase(); return lowerLang.includes(selectedCategory); });
补充说明:
- 原代码里
language.toLowerCase() !== selectedCategory的判断是多余的,因为includes已经能准确筛选出包含目标分类的项,去掉后不影响逻辑结果。 - 调整后的逻辑顺序更合理:先处理特殊的全选场景,再过滤无效数据,最后统一做转换和判断,代码结构更清晰,也避免了重复计算。
内容的提问来源于stack exchange,提问作者Johnny
相关产品推荐
相关产品推荐

