如何可靠地测试一个值是否为NaN?

在JavaScript中,你可以使用isNaN()函数来测试一个值是否为NaN。然而,isNaN()函数有一些不太直观的行为,例如它会先将非数值类型的参数转换为数值类型,然后再判断。因此,isNaN('hello')会返回true,即使字符串'hello'显然不是一个NaN值。

为了更可靠地测试一个值是否为NaN,你可以使用Number.isNaN()方法。这个方法在ES6(ECMAScript 2015)中被引入,它只有在参数严格等于NaN时才会返回true。换句话说,它不会先将参数转换为数值类型。

以下是一个使用Number.isNaN()方法的示例:

let value1 = NaN;
let value2 = 'hello';
let value3 = 0/0; // 这会返回NaN

console.log(Number.isNaN(value1)); // 输出: true
console.log(Number.isNaN(value2)); // 输出: false
console.log(Number.isNaN(value3)); // 输出: true

在这个示例中,Number.isNaN()方法正确地识别了NaN值,而没有将非数值类型的字符串误判为NaN。

posted @ 2024-12-23 09:13  王铁柱6  阅读(28)  评论(0)    收藏  举报