如何在 JavaScript 中检查 NaN 是否为 NaN?


在本文中,我们将了解如何在 JavaScript 中检查 NaN 是否为 NaN。未加引号的文字常量“非数字”由 NaN 表示,这是一个特殊值。NaN 通常用于为应该返回有效数字的函数发出错误条件信号,因为它总是与任何数字(包括 NaN)不相等。

区分 JavaScript 中的不同未定义值可能很棘手。在布尔运算中使用 NaN 值时,需要注意一些困难。

JavaScript 中的数字类型允许您描述任何类型的数字,包括整数和浮点值。JavaScript 数字的一个特定值是 NaN,代表“非数字”。

语法

以下是 NaN 方法的语法

var val = Number.NaN

五种不同类型的运算都会返回 NaN。JavaScript 使用 NaN 作为对数字进行失败操作的结果。

  • 无法解码的数字

  • 不是实数的数学运算的结果

  • 参数的值为 NaN。

  • 不确定的形式

  • 任何使用不是加法运算的字符串的运算

示例 1

如果 JavaScript 无法将字符串转换为数字,它将返回 NaN。在这种情况下,NaN 表示解析失败。考虑以下场景:

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 'tuttorialspoint555'; const number = parseInt(tutpoint); document.write(number); </script> </body> </html>

示例 2

在这个例子中,我们将了解:未定义是全局未定义属性表示的原始值。它是 JavaScript 中的一种基本类型。

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> function tutpoint(result) { if (result === undefined) { return 'This gives you undefined value!'; } return result; } let demo; document.write(tutpoint(demo)); </script> </body> </html>

示例 3

作为参数使用 NaN,当表达式包含字符 NaN 时,它将始终返回 NaN。考虑以下场景:

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 55 + 5 / NaN; document.write(tutpoint); </script> </body> </html>

示例 4

使用未定义类型,在不确定形式中执行算术运算时,结果为 NaN。考虑以下场景:

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 55 + 0 / 0; document.write(tutpoint); </script> </body> </html>

示例 5

在这个例子中,Math.sqrt() 函数返回一个整数的平方根。传递 -2 会导致 NaN,因为它只接受非负数。考虑以下场景:

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = Math.sqrt(-2); document.write(tutpoint); </script> </body> </html>

isNaN()

isNaN() 方法检查一个值是否为 NaN。标准库方法 isNaN 是执行此检查最有用的方法之一 ()。您可以选择使用 Number.isNaN 而不是 isNaN 函数,因为强制转换可能出乎意料 ()。

使用数字作为参数调用 Number.isNaN() 函数来确定一个数字是否为 NaN。如果传入的值为 NaN 且具有数字类型,则 Number.isNaN 方法返回 true;否则,返回 false。

语法

以下是 isNaN() 方法的语法

isNaN(value)

序号 参数和描述
1


要测试的值

示例 1

在这个例子中,我们将了解如何识别一个值是否为 NaN。isNaN() 是 JavaScript 中的一个全局方法,如果其参数为 NaN,则返回 true:

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 10 + 0 / 0; document.write(isNaN(tutpoint)); </script> </body> </html>

示例 2

在这个例子中,我们将了解如何识别一个值是否为 NaN。isNaN() 是 JavaScript 中的一个全局方法,如果其参数为 NaN,则返回 true:

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div id="result"></div> <script> let tutpoint = "Welcome to tutorialspoint!"; document.getElementById("result").innerHTML = isNaN(tutpoint); </script> </body> </html>

示例 3

在这个例子中,我们将了解 Number.isNaN() 方法,它返回 false。

<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div id="result"></div> <script> let tutpoint = "Welcome to tutorialspoint!"; document.getElementById("result").innerHTML = Number.isNaN(tutpoint); </script> </body> </html>

更新于:2022年8月4日

343 次浏览

启动你的 职业生涯

完成课程获得认证

开始学习
广告