什么情况下可以使用 JavaScript 中的 Boolean 函数

开发 前端
虽然 Boolean() 函数非常有用,但是会遇到一些关于 Boolean 对象和 new Boolean() 构造函数的问题。

[[403627]]

用 Boolean 进行真实检查

Boolean() 函数在对数据进行真值检查时特别有用,并且可能比双重否定 (!!) 操作更具可读性:

  1. let x = 'some-value'
  2.  
  3. // 这看起来不太美观 
  4. if (!!x) { 
  5.   // ... 
  6.  
  7. // 这更具可读性 
  8. if (Boolean(x)) { 
  9.   // ... 

正如你在上面的例子中所看到的,它的用途完全相同,并且用起来非常简单。同样,由于 Boolean() 本身就是一个返回布尔值的函数,你可以用它来检查集合、过滤数组等:

  1. const values = [0, 0, 2, 0, 3]; 
  2. // 用作 Array.prototype.some() 的回调 
  3. const hasValidValue = values.some(Boolean); 
  4. // 用作 Array.prototype.filter() 的回调 
  5. const nonEmptyValues = values.filter(Boolean); 

小心处理布尔对象

虽然 Boolean() 函数非常有用,但是会遇到一些关于 Boolean 对象和 new Boolean() 构造函数的问题。Boolean 对象是一个布尔值的对象包装器,但棘手的部分是,作为一个对象,即使包含的值为 false,它也始终为真!

  1. let x = new Boolean(false); 
  2.  
  3. if (x) { 
  4.   // 这里的代码会执行 

例如,上面的代码会考虑 x 为真,即使它明确把 false 作为其值。这可能有些令人困惑,但是如果你不用 Boolean 对象和 new Boolean() 构造函数,就可以轻松避免它,除非你完全确定出于什么原因需要使用它。我找不到任何需要使用它的场景,所以一开始可能并不常见。

 

责任编辑:赵宁宁 来源: 前端先锋
相关推荐

2013-07-29 14:50:43

API

2020-11-18 09:26:52

@property装饰器代码

2023-11-23 23:52:06

options请求浏览器

2014-11-03 09:52:25

DNSUDPTCP

2013-09-12 10:41:39

VDI部署

2010-07-13 16:07:26

SQL Server行

2015-06-01 06:39:18

JavaJava比C++

2010-04-14 17:46:10

Oracle数据库

2024-01-09 11:39:47

数字化转型数字优先企业

2015-06-29 14:23:13

JavaC++慢很多

2013-09-23 10:05:50

2023-05-18 08:38:13

Java锁机制

2009-03-05 10:55:00

企业无线Wi-Fi

2021-09-14 07:26:25

雪花算法ID

2010-07-20 12:46:23

SQL Server聚

2024-11-07 12:08:27

微服务协议通信

2020-09-24 09:43:59

Http协议options请求

2022-07-20 08:07:21

数据库分布式数据库

2012-04-25 09:24:40

Android

2023-03-27 13:00:13

Javascript前端
点赞
收藏

51CTO技术栈公众号