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

Node.js中带三元运算的求和函数输入null时返回NaN问题求助

问题原因

你当前的代码只对参数严格等于null的场景做了默认值处理,没有覆盖其他会导致加法运算返回NaN的场景:

  • 调用函数时少传参数,对应参数值为undefined,undefined参与加法运算直接返回NaN
  • 传入字符串、对象等非数值类型的参数时,也会出现非预期结果或者NaN

修复方案

方案1:仅兼容null/undefined场景

如果你的参数只会出现null、undefined和合法数值三种情况,可以直接用空值合并运算符??简化代码,逻辑和你原本的判断逻辑一致,同时覆盖undefined的场景:

function sumfunct(x,y)
{
    return (x ?? 0) + (y ?? 0);
}

方案2:全场景兼容非数值输入

如果不能保证传入的参数都是合法数值,建议先做类型转换,非法数值统一替换为0:

function sumfunct(x,y)
{
    const parseNum = (val) => isNaN(Number(val)) ? 0 : Number(val);
    return parseNum(x) + parseNum(y);
}

以上代码不管传入的是null、undefined、非法字符串还是其他类型,都能保证返回合法的数值求和结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:33:03