三元函数return Node js中的Nan

Ternary function return Nan in Node js

代码:

function sumfunct(x,y)
{
    let sum = 0;
    sum = (x === null ? 0 : x) + (y === null ? 0 : y);
    return sum;
}

如果输入值之一为空,则它 returns Nan

请帮我return一些价值

为您的函数参数添加默认值。

const sum = (x = 0, y = 0) => x + y;

如果它们是 nullundefined,则值将为 0;

为了更好的处理,您可以使用类似的东西:

const sum = (x, y) => {
  const a = Number.isFinite(+x) ? +x : 0;
  const b = Number.isFinite(+y) ? +y : 0;
  return a + b;
}

逻辑运算符===匹配类型和值。如果您不传递参数,则默认值为 undefined,它不为 null,因此您向 undefined 添加一个数字。

function sumfunct(x,y)
{
    let sum = 0;
    sum = (!x ? 0 : x) + (!y ? 0 : y);
    return sum;
}

在 JavaScript 中所有这些值:(0, undefined, null, false, '') Will return false.

如果你使用三元组=喜欢===。这也检查类型。因此,如果您将 undefined 作为值,则 === 不会为 null。

检查这里的简单功能,这可能会解决你的问题。

function sumfunct(x,y)
{
    let sum = 0;
    sum = (x ? x : 0) + (y ? y : 0);
    return sum;
}

您可以将默认值作为 0.undefinenull 替换为 0

function sumfunct(x=0,y=0)
{
    let sum = 0;
    sum = x + y;
    return sum;
}

sumfunct(console.log(sumfunct(2, undefined)))
sumfunct(console.log(sumfunct(2, null)))

您也可以只分别检查两个输入

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

console.log(sumfunct(2,2));
console.log(sumfunct(2,null));

一种更短的方法。每个 falsey 值(0nullundefined)都将转换为 0:

function sumfunct(x,y)
{
    let sum = 0;
    sum = (x || 0) + (y || 0);
    return sum;
}

在此处尝试代码段

function sumfunct(x,y)
{
    let sum = 0;
    sum = (x || 0) + (y || 0);
    return sum;
}

console.log(sumfunct(2, 2));   // 4
console.log(sumfunct(3));     // 3
console.log(sumfunct(null, 2));   // 2
console.log(sumfunct(undefined, undefined));   // 0