上一节我们学习了JS中的Math对象,本节我们将会学习JS中的Boolean对象。在JS中,Boolean(布尔)对象是一个基本但非常重要的数据类型,用于表示逻辑值 true 或 false。

什么是 Boolean 对象?

Boolean 对象是JS的一个内置对象,它表示一个布尔值(true 或 false)。与 Number 和 String 对象类似,Boolean 既可以作为原始数据类型使用,也可以作为对象使用。

// 作为原始数据类型-只有true或者是false两个值
let flag = true;
flag=false
// 作为 Boolean 对象
let boolObj = new Boolean(true);

1. 字面量方式(推荐)

let flag1 = true;
let flag2 = false;

2. 构造函数方式

let boolObj1 = new Boolean(true);
let boolObj2 = new Boolean(false);
let boolObj3 = new Boolean(0);      // false
let boolObj4 = new Boolean("");     // false
let boolObj5 = new Boolean("hello"); // true

注意:使用构造函数创建的 Boolean 值是一个对象,而不是原始布尔值,这可能会在比较时产生意外的结果。

// 原始布尔值比较
console.log(true === true); // true
let boolObj = new Boolean(true);
console.log(boolObj === true); // false - 严格相等,类型不同(object vs boolean)
console.log(boolObj == true);  // true - 宽松相等,对象会先转换为原始值再比较
console.log(boolObj.valueOf() === true); // true - 明确获取原始值比较

3. 布尔转换规则:在JS中,任何值都可以被转换为布尔值。以下是一些常见的转换规则:

/* 值转false的情况 */
console.log(Boolean(false));    // false
console.log(Boolean(0));        // false
console.log(Boolean(-0));       // false
console.log(Boolean(""));       // false
console.log(Boolean(null));     // false
console.log(Boolean(undefined));// false
console.log(Boolean(NaN));      // false
/* 值转true的情况 */
console.log(Boolean(true));     // true
console.log(Boolean(1));        // true
console.log(Boolean(-1));       // true
console.log(Boolean("0"));      // true
console.log(Boolean("false"));  // true
console.log(Boolean([]));       // true
console.log(Boolean({}));       // true
console.log(Boolean(function() {})); // true

4. Boolean 对象的方法:toString()和valueOf()。

/* Boolean对象的方法-toString()和valueOf() */
//toString()-把boolean值转字符串
console.log(false.toString());//false
console.log(true.toString());//true
//valueOf()-返回布尔对象包装的原始值
const flag1 = new Boolean(null)
const flag2 = new Boolean(1)
console.log(flag1.valueOf());//false
console.log(flag2.valueOf());//true

5. 布尔运算:JS 提供了几种布尔运算符,用于组合和操作布尔值:

逻辑与 (&&)
console.log(true && true);   // true
console.log(true && false);  // false
console.log(false && true);  // false
console.log(false && false); // false
逻辑或 (||)
console.log(true || true);   // true
console.log(true || false);  // true
console.log(false || true);  // true
console.log(false || false); // false
逻辑非 (!)
console.log(!true);  // false
console.log(!false); // true

总结:Boolean 对象是 JS 中处理逻辑值的基础工具。通过理解其特性和使用方法,我们可以:有效地进行条件判断和流程控制、利用布尔运算简化代码逻辑以及避免常见的类型转换陷阱。

点赞(240)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)