JavaScript 中 NaN 如何转换为布尔值?
在本文中,我们将学习如何将 NaN 转换为布尔值。JavaScript 中的 NaN 代表 **非数字**(Not a Number),其类型为数字,但实际上它不是数字。要将 NaN 转换为布尔值,我们可以使用多种方法,其中一些方法将在下面讨论。
- 使用 Boolean() 函数
- 使用 !! 运算符
- 使用 NOT 运算符和 isNaN() 方法
使用 Boolean() 函数
Boolean 函数用于获取任何变量、条件或对象的布尔值(**真** 或 **假**)。要将 **NaN** 转换为布尔值,我们只需要将 NaN 传递给 Boolean 函数。
语法
以下是将 NaN 转换为布尔值的语法
Boolean(NaN)
这里 **Boolean()** 函数返回 false。
示例 1
在这个例子中,我们创建了一个名为 bool 的变量,并将 NaN 传递到 Boolean 函数中,并将返回值存储到 bool 中,然后打印结果。
<html> <body> <p>Convert NaN to Boolean </p> <p id ="result"></p> <script> let bool = Boolean(NaN) document.getElementById("result").innerHTML += bool +"<br>"; document.getElementById("result").innerHTML += typeof bool </script> </body> </html>
使用 !! 运算符
逻辑 **非** 运算符后跟另一个逻辑 **非** 运算符是一种简单而优雅的方法,可以将 NaN 转换为布尔值。第一个逻辑运算符将值转换为布尔值,另一个逻辑运算符反转第一个运算符返回的值。
语法
!!object
让我们用一个例子将运算符分解成两部分
示例 2
在这个例子中,我们创建了一个名为 x 的变量,并将 “Tutorials point” 存储到其中,并创建另一个名为 x1 的变量,其中我们存储了 !x 的值,这里逻辑运算符将值转换为布尔值,另一个运算符 (x2) 反转第一个运算符 (x1) 给出的结果。
<html> <body> <p id ="output"></p> <script> var x = "Tutorials Point" var x1 = !x; // false var x2 = !!x; // true document.getElementById("output").innerHTML = x1 + " <br>"; document.getElementById("output").innerHTML += x2 </script> </body> </html>
示例 3
在这个例子中,我们将 NaN 转换为布尔值。
<html> <body> <p>Convert NaN to Boolean</p> <p id ="output"></p> <script> let bool = !!NaN; document.getElementById("output").innerHTML += bool +"<br>"; document.getElementById("output").innerHTML += typeof bool </script> </body> </html>
使用 NOT 运算符和 isNaN() 方法
我们可以使用 **非** 运算符和 **isNaN()** 方法将 NaN 转换为布尔值。如果值为 NaN,则 isNaN() 方法返回 true,否则返回 false。isNaN() 方法在测试值之前会将值转换为数字。*非*(!) 运算符将 true 转换为 false。
语法
!isNaN(NaN)
这里 isNaN() 返回 true,因为值为 NaN,最后 ! 运算符将 true 转换为 false。
示例 4
在下面的例子中,我们使用 isNaN() 方法将 NaN 转换为布尔值。我们还在将其转换为布尔值后测试变量的类型。
<html> <body> <p>Convert NaN to Boolean</p> <p id ="output"></p> <script> let bool = !isNaN(NaN); document.getElementById("output").innerHTML += bool +"<br>"; document.getElementById("output").innerHTML += typeof bool </script> </body> </html>
正如我们提到的三种方法,它们性能都比较高。Boolean 函数被一些开发者广泛使用,而 !! 运算符方法看起来有点难以阅读,一些开发者对此并不了解。如果我们谈论这两种方案的速度,!! 运算符比 Boolean 函数略快。我们讨论的第三种方法是组合使用 ! 运算符和 isNaN()。它将 NaN 转换为布尔值 false。