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

 更新时间:2016年06月26日 09:05:25   作者:小火柴的蓝色理想  
这篇文章主要介绍了JavaScript类型系统之布尔Boolean类型详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

前面的话

  布尔值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类型详解的全部叙述,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • 详解JS获取HTML DOM元素的8种方法

    详解JS获取HTML DOM元素的8种方法

    本篇文章主要介绍了详解JS获取HTML DOM元素的8种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • javascript 实现纯前端将数据导出excel两种方式

    javascript 实现纯前端将数据导出excel两种方式

    这篇文章主要介绍了javascript 实现纯前端将数据导出excel两种方式,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参一下
    2022-07-07
  • 微信二次分享报错invalid signature问题及解决方法

    微信二次分享报错invalid signature问题及解决方法

    基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。这篇文章主要介绍了微信二次分享报错invalid signature问题及解决方法,需要的朋友可以参考下
    2019-04-04
  • 微信小程序实现电子签名功能

    微信小程序实现电子签名功能

    这篇文章主要为大家详细介绍了微信小程序实现电子签名功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • KnockoutJS 3.X API 第四章之表单value绑定

    KnockoutJS 3.X API 第四章之表单value绑定

    Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。这篇文章主要介绍了KnockoutJS 3.X API 第四章之表单value绑定的相关资料,需要的朋友可以参考下
    2016-10-10
  • 微信小程序实现侧边导航栏

    微信小程序实现侧边导航栏

    这篇文章主要为大家详细介绍了微信小程序实现侧边导航栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 理解javascript对象继承

    理解javascript对象继承

    这篇文章主要帮助大家理解javascript对象继承,先从一个问题出发,引入javascript对象继承相关知识,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Javascript 6里的4个新语法

    Javascript 6里的4个新语法

    这篇文章主要为大家详细介绍了Javascript 6里的4个新语法,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • JavaScript中强大的操作符使用详解

    JavaScript中强大的操作符使用详解

    JavaScript 为我们提供了很多操作符,用于操作表达式。下面就来盘点一下 JavaScript 中那些强大的操作符,感兴趣的小伙伴可以了解一下
    2022-09-09
  • 详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)

    详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)

    本篇文章主要介绍了webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件) ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论