JavaScript类型系统之布尔Boolean类型详解


Posted in Javascript onJune 26, 2016

前面的话

布尔值Boolean类型可能是三种包装对象Number、String和Boolean中最简单的一种。Number和String对象拥有大量的实例属性和方法,Boolean却很少。从某种意义上说,为计算机设计程序就是与布尔值打交道,作为最基本的事实,所有的电子电路只能识别和使用布尔数据。本文将介绍布尔Boolean类型

定义

布尔Boolean类型表示逻辑实体,它只有两个值,保留字true和false,分别代表真和假这两个状态

Boolean包装类型是与布尔值对应的引用类型,在布尔表达式中使用Boolean对象容易造成误解

var b1 = true;
var b2 = new Boolean(true);
console.log(b1,typeof b1);//true 'boolean'
console.log(b2,typeof b2);//Boolean{[[PrimitiveValue]]: true} 'object'
console.log(b1.valueOf(), typeof b1.valueOf());//true 'boolean'
console.log(b2.valueOf(), typeof b2.valueOf());//true 'boolean'

应用场景

布尔类型主要应用于如下场景:

【1】条件和循环语句

布尔值主要应用于条件和循环语句的条件部分。比如,if语句中,如果布尔值为true执行第一段逻辑,如果为false执行另一段逻辑。通常将一个创建布尔值的比较直接与使用这个比较的语句结合在一起

if(a > 1){
//条件为true时,执行此处
}else{
//条件为false时,执行此处
}

【2】逻辑运算符

逻辑运算符又叫布尔运算符。逻辑非运算符总是返回布尔值,而逻辑或和逻辑与操作并非如此

同时使用一个逻辑非操作符,可以将类型转换为布尔型

console.log(!!1);//true
console.log(!!0);//false
console.log(!!' ');//true
console.log(!!'');//false

【3】关系运算符

关系运算符用于测试两个值之间的关系,根据关系是否存在而返回true或false,关系表达式总是返回一个布尔值,通常在if、while或for语句中使用关系表达式,用以控制程序的执行流程

console.log( 1 > 2);//false
console.log( 1 < 2);//true

转为布尔

将一个值转为布尔值可使用Boolean()转型函数

假值

转换成false的值称为假值(falsy value),这7个值包括undefined、null、+0、-0、NaN、false、""(空字符串)

console.log(Boolean(undefined));//false
console.log(Boolean(null));//false
console.log(Boolean(0));//false
console.log(Boolean(-0));//false
console.log(Boolean(NaN));//false
console.log(Boolean(''));//false
console.log(Boolean(false));//false

[注意]在Number()方法中空字符串和空白字符串都转换为0,而在Boolean方法中,空字符串""转换为false,而空白字符串" "转换为true

console.log(Number(''));//0
console.log(Number(' '));//0
console.log(Boolean(''));//false
console.log(Boolean(' '));//true

除了这7个假值外,其他的值转换为布尔值都是true,也称为真值(truthy value)

[注意]所有对象(包括空对象)的转换结果都是true,甚至连false对应的布尔对象new Boolean(false)也是true

console.log(Boolean({}));//true
console.log(Boolean([]));//true
console.log(Boolean(new Boolean(false)));//true
console.log(Boolean(false));//false
console.log(Boolean(new Boolean(null)));//true
console.log(Boolean(null));//false

实例方法

Boolean对象是与布尔值对应的包装类型,继承了Object对象的通用方法toString()、toLocaleString()、valueOf()这三个方法

【toString()】

toString()方法返回Boolean的字符串值('true'或'false')

【toLocaleString()】

toLocaleString()方法返回Boolean的字符串值('true'或'false')

【valueOf()】

valueOf()方法返回Boolean的原始布尔值(true或false)

console.log(true.valueOf());//true
console.log(true.toString());//'true'
console.log(true.toLocaleString());//'true'
console.log(Boolean(false).valueOf());//false
console.log(Boolean(false).toString());//'false'
console.log(Boolean(false).toLocaleString());//'false'

以上所述是小编给大家介绍的JavaScript类型系统之布尔Boolean类型详解的全部叙述,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
Jqyery中同等与js中windows.onload的应用
May 10 Javascript
javascript 实现map集合
Apr 03 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
JavaScript变量作用域_动力节点Java学院整理
Jun 27 Javascript
实例分析vue循环列表动态数据的处理方法
Sep 28 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 #Javascript
JQuery控制图片由中心点逐渐放大效果
Jun 26 #Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
Jun 26 #Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 #Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
Jun 25 #Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
Jun 25 #Javascript
js操作XML文件的实现方法兼容IE与FireFox
Jun 25 #Javascript
You might like
php foreach、while性能比较
2009/10/15 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
js判断手机系统是android还是ios
2017/03/07 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python并发编程之线程实例解析
2017/12/27 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python使用正则筛选信用卡
2019/01/27 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python怎么删除缓存文件
2020/07/19 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
质量承诺书怎么写
2014/05/24 职场文书
爱护花草树木的标语
2014/06/11 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
世界文化遗产导游词
2019/08/07 职场文书
POST提交数据常见的四种方式
2022/01/18 HTML / CSS