使用 JavaScript 将 NaN 转换为 0
Convert NaN to 0 using JavaScript
使用逻辑或 (||) 运算符转换NaN
为0
,例如
const result = val || 0;
。如果左边的值为假,则逻辑 OR (||) 运算符返回右边的值。
索引.js
let val = NaN; val = val || 0; console.log(val); // 👉️ 0
如果左边的
值为假,则逻辑 OR (||)
运算符返回右边的值。
JavaScript 中的假值是null
, undefined
, false
, 0
, ""
(空字符串),NaN
(不是数字)。
这意味着我们不显式检查值是否等于,我们检查值是否为假。所以它可能是一个空字符串,,等等。
NaN
undefined
null
一个简单的思考方式是——运算符右边的值是一个回退,以防左边的值是假的。
或者,您可以显式检查值是否为NaN
。
索引.js
let val = NaN; if (Number.isNaN(val)) { val = 0; } console.log(val); // 👉️ 0
如果存储的值等于 ,则使用关键字声明val
变量允许我们重新分配它。let
NaN
虽然这种方法有点冗长,但它仍然易于阅读且直观。
或者,您可以使用
三元运算符。
使用三元运算符转换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
.