前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS原生引用类型解析6-Boolean类型

JS原生引用类型解析6-Boolean类型

作者头像
love丁酥酥
发布2018-08-27 15:41:31
1.2K0
发布2018-08-27 15:41:31
举报
文章被收录于专栏:coding for lovecoding for love

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!)

(注2:更多内容请查看我的目录。)

1. 简介

为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型作为基本包装类型:String,Number和Boolean。实际上,每当读取一个基本类型值得时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。

2. Boolean类型对象创建

Boolean类型是与布尔值对应的引用类型,Boolean类型对象创建是使用Boolean构造函数。下面是使用Boolean构造函数传入不同类型参数后的情况。

代码语言:javascript
复制
// 传入Number类型非0
console.log(new Boolean(1));  // Boolean {true}
// 传入Number类型0
console.log(new Boolean(0));  // Boolean {false}
// 传入NaN类型
console.log(new Boolean(NaN));  // Boolean {false}
// 传入Infinity类型
console.log(new Boolean(Infinity));  // Boolean {true}
// 传入String类型
console.log(new Boolean('123'));  // Boolean {true}
// 传入Undefined类型
console.log(new Boolean(undefined));  // Boolean {false}
// 传入Null类型
console.log(new Boolean(null));  // Boolean {false}
// 传入Boolean类型
console.log(new Boolean(true));  // String {"true"}
// 传入Array类型
console.log(new Boolean([1,2]));  // Boolean {true}
// 传入Function类型
console.log(new Boolean(function(){return 1;}));  // Boolean {true}
// 传入Object类型
console.log(new Boolean({a: 1}));  // Boolean {true}

省略new的效果一样。

3. Boolean类型与基本类型值的区别

  1. typeof操作符返回值不同
代码语言:javascript
复制
typeof(new Boolean(false));  // "object"
typeof(false);  // "boolean"
  1. instanceOf操作符测试Boolean返回值不同
代码语言:javascript
复制
new Boolean(false) instanceof Boolean;  // true
false instanceof Boolean;  // false

需要注意的是:

new Boolean(false)是一个对象而不是false

代码语言:javascript
复制
new Boolean(false) || false;  // Boolean {false}
new Boolean(false) && true;  // true

4. Boolean原型对象的方法

Boolean用处不大,实际使用中尽量不要使用。其重写了Object.prototype的两个方法。

Boolean.prototype.valueOf()

返回基本类型true或false

Boolean.prototype.toString()

返回字符串"true"或"false"

参考

MDN-Boolean

BOOK-《JavaScript高级程序设计(第3版)》第5章

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 简介
  • 2. Boolean类型对象创建
  • 3. Boolean类型与基本类型值的区别
  • 4. Boolean原型对象的方法
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档