050_Boolean对象

1. Boolean对象

1.1. Boolean是对true或false的包装对象。

1.2. 创建Boolean对象的语法:

var myBool = new Boolean(value);

1.3. 参数value由布尔对象存放的值。

1.4. 当Boolean()和运算符new一起作为构造函数使用时, Boolean()将把它的参数转换成一个布尔值, 并且返回一个包含该值的Boolean对象。

1.5. 如果省略value参数, 或者设置为undefined、null、""、0、NaN或false, 则该对象设置为false。否则设置为true(即使value参数是字符串"false")。

2. Boolean对象属性

3. Boolean对象方法

4. 使用字面量创建布尔值和Boolean对象创建布尔

4.1. 使用字面量创建布尔值和Boolean对象创建布尔值

var b1 = new Boolean(); // Boolean对象创建布尔值
var b2 = false; // 使用字面量创建布尔值

4.2. 使用字面量创建的布尔值和使用Boolean对象创建布尔值的不同

4.2.1. 使用字面量创建的布尔值是原始值, 储存在栈中。

4.2.2. 使用Boolean对象创建的布尔值是对象(引用类型), 储存在堆中。

4.2.3. 布尔字面量和Boolean对象创建布尔值的内存结构:

4.2.4. 使用Boolean对象创建布尔值比使用字面量创建布尔值复杂的多(就是因为Boolean对象多执行了一个Boolean()构造函数), 执行效率低, 因此我们通常使用字面量创建布尔值。

4.2.5. 使用==运算符判断使用字面量和Boolean对象创建的相同值的布尔值是否相等时, 结果是true, 因为布尔值相同。

4.2.6. 使用===运算符判断使用字面量和Boolean对象创建的相同值的布尔值是否相等时, 结果是false, 因为虽然布尔值相同, 但类型不同, 一个是布尔值, 一个是对象。

5. 布尔原始值可以使用Boolean对象的属性和方法

5.1. 原始布尔值, 比如true, 无法拥有属性和方法, 因为它们不是对象。

5.2. 但是通过JavaScript, Boolean对象的属性和方法也可用于原始布尔值, 因为在执行属性和方法时 JavaScript将原始布尔值视为伪对象。

6. Boolean对象重写了Object对象的constructor: ƒ Boolean()属性, 和toString()、valueOf()这两个方法。

7. toString()方法

7.1. toString()方法可把一个逻辑值转换为字符串, 并返回字符串原始值"true"或"false"。

7.2. 语法

booleanObject.toString()

8. valueOf()方法

8.1. valueOf()方法可返回Boolean对象的原始值。

8.2. 语法

booleanObject.valueOf()

9. 例子

9.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>Boolean对象</title>
	</head>
	<body>
		<script type="text/javascript">
			var b1 = new Boolean(undefined);
			var b2 = new Boolean(null);
			var b3 = new Boolean("");
			var b4 = new Boolean("false");
			var b5 = new Boolean(0);
			var b6 = new Boolean(NaN);
			var b7 = new Boolean();
			var b8 = new Boolean(false);
			var b9 = new Boolean(true);
			var b10 = true;

			document.write('b1 = ' + b1 + '<br />');
			document.write('b2 = ' + b2 + '<br />');
			document.write('b3 = ' + b3 + '<br />');
			document.write('b4 = ' + b4 + '<br />');
			document.write('b5 = ' + b5 + '<br />');
			document.write('b6 = ' + b6 + '<br />');
			document.write('b7 = ' + b7 + '<br />');
			document.write('b8 = ' + b8 + '<br />');
			document.write('b9 = ' + b9 + '<br />');
			document.write('b10 = ' + b10 + '<hr />');

			document.write('(b9 == b10) = ' + (b9 == b10) + '<br />');
			document.write('((b9 === b10) = ' + (b9 === b10) + '<br />');
			document.write('(b9.valueOf() === b10) = ' + (b9.valueOf() === b10) + '<br />');
			document.write('(typeof b9) = ' + (typeof b9) + ', (typeof b9.valueOf()) = ' + (typeof b9.valueOf()) + '<br />');
			document.write('(typeof b10) = ' + (typeof b10) + ', (typeof b10.valueOf()) = ' + (typeof b10.valueOf()) + '<hr />');

			document.write('b8.toString() = "' + b8.toString() + '", (typeof b8.toString()) = ' + (typeof b8.toString()) + '<br />');
			document.write('b9.toString() = "' + b9.toString() + '", (typeof b9.toString()) = ' + (typeof b9.toString()) + '<br />');
			document.write('b10.toString() = "' + b10.toString() + '", (typeof b10.toString()) = ' + (typeof b10.toString()) + '<br />');
		</script>
	</body>
</html>

9.2. 效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值