使用 JavaScript 将 NaN 转换为 0

使用 JavaScript 将 NaN 转换为 0

Convert NaN to 0 using JavaScript

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

索引.js
let val = NaN; val = val || 0; console.log(val); // 👉️ 0

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

JavaScript 中的假值是null, undefined, false, 0, ""
(空字符串),
NaN(不是数字)。

这意味着我们不显式检查值是否等于,我们检查值是否为假。所以它可能是一个空字符串,,等等。 NaNundefinednull

一个简单的思考方式是——运算符右边的值是一个回退,以防左边的值是假的。

或者,您可以显式检查值是否为NaN

索引.js
let val = NaN; if (Number.isNaN(val)) { val = 0; } console.log(val); // 👉️ 0

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

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

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

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

索引.js
let val = NaN; const result = Number.isNaN(val) ? 0 : val; console.log(result); // 👉️ 0

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

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

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

您不应该尝试显式比较,NaN因为NaN它是 JavaScript 中唯一不等于自身的值。

索引.js
console.log(NaN === NaN); // 👉️ false

您尝试与自身进行比较的任何其他值都会true返回,但是NaN.

发表评论