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

front end technologyjavascriptobject oriented programming

在本文中,让我们了解如何在 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

通过这个例子,我们将明白:Undefined 是全局 undefined 属性所表示的原始值。它是 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)

Sr.No 参数和说明
1

value

要测试的值

示例 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

在此示例中,让我们了解返回 false 的 Number.isNaN() 方法。

<!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>

相关文章