使用 JavaScript 将 NaN 转换为 0

使用逻辑 OR (||) 运算符将 NaN 转换为 0,例如 const result = val || 0;. 如果左边的值是假的,则逻辑 OR (||) 运算符返回右边的值。

let val = NaN;

val = val || 0;

console.log(val); // ?️ 0

如果左边的值是假的,则逻辑 OR (||) 运算符返回右边的值。

JavaScript 中的假值是 nullundefinedfalse0、**””(空字符串)、NaN**(不是数字)。

这意味着我们没有明确检查该值是否等于 NaN,我们检查该值是否为假。 所以它可能是一个空字符串、undefinednull 等。

一个简单的考虑方法是 – 运算符右侧的值是一个备用值,以防左侧的值是假的。

或者,我们可以显式检查该值是否为 NaN

let val = NaN;

if (Number.isNaN(val)) {
  val = 0;
}

console.log(val); // ?️ 0

如果存储的值等于 NaN,则使用 let 关键字声明 val 变量允许我们重新分配它。

虽然这种方法有点冗长,但它仍然易于阅读和直观。

或者,我们可以使用三元运算符

使用三元运算符将 NaN 转换为零,例如 const result = Number.isNaN(val) ? 0 : val;。 如果值等于 NaN,则运算符返回 0,否则返回值。

let val = NaN;

const result = Number.isNaN(val) ? 0 : val;

console.log(result); // ?️ 0

三元运算符与 if/else 语句非常相似。

如果问号左边的表达式计算为真值,则返回冒号左边的值,否则返回右边的值。

注意,我们使用 Number.isNaN 方法来检查值是否为 NaN(不是数字)。

我们不应该尝试显式地与 NaN 进行比较,因为 NaN 是 JavaScript 中唯一的值,它不等于自身。

console.log(NaN === NaN); // ?️ false