You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中使用find方法和if语句时undefined报错如何解决

错误原因

  • 第一层错误:当Array.find()没有匹配到结果时,返回值为undefined,此时直接访问currentlyActive._id会直接抛出对象访问异常,根本不会进入你写的条件判断逻辑。另外注意你报错提示里的变量名是activeSearch,但你代码里定义的变量是currentlyActive,先确认下实际代码的变量名是否统一,避免低级错误。
  • 第二层错误:你写的条件判断逻辑本身存在语法和逻辑问题:
    • 你判断的是!== 'undefined',这里的'undefined'是字符串类型,和find返回的undefined原始值完全不相等
    • || null的写法不符合逻辑运算规则,该表达式实际等价于(currentlyActive._id !== 'undefined') || null,既不能实现判断_id不为null的需求,还会导致条件判断结果不符合预期

修复方案

方案1(推荐,现代JS环境支持)

使用可选链运算符?.避免访问空对象的属性抛出异常,配合!= null同时排除undefined和null两种情况:

if (currentlyActive?._id != null) {
    console.log('hello')
}

方案2(兼容低版本JS环境)

先判断上层对象是否存在,再判断属性值是否符合要求:

// 先判断currentlyActive不是undefined也不是null
if (currentlyActive != null && currentlyActive._id != null) {
    console.log('hello')
}

内容的提问来源于stack exchange,提问作者Jerry Seigle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:06:04