前面的话

当 Number、String、Boolean使用new操作符时,它们就不仅仅是基本类型了,变成了基本的包装类型,即引用类型。Boolean类型应该算是这三种类型中最简单的类型,这篇文章将介绍Boolean类型。

定义

Boolean类型只有两个字面量值:true、false。这两个值与数字值不是一回事,所以,true不一定等于1,false不一定等于0.

Boolean包装类型是与布尔值对应的引用类型。

    var b1 = true;var b2 = new Boolean(true);console.log(b1, typeof b1); // true "boolean"console.log(b2, typeof b2); // Boolean  "object"

应用场景

  • 条件与循环语句:
   var message = "hello world";if(message) {alert('Value is true');}

上面的示例中,会弹出一个警告框。因为在if语句中的message自动转为了对应的Boolean值true。

  • 布尔操作符

逻辑操作符也叫布尔操作符,共有三种:与(&&)、或(||)、非(!)。

逻辑非操作符:首先会将它的操作数换为布尔值,再对其求反。最终得到的是操作数对应相反的布尔值。

而同时使用两个逻辑非操作符(!!),将操作数转为对象的布尔值。

     console.log(!!"true");console.log(!! 0);console.log(!! NaN);console.log(!! "");console.log(!! " ");

  • 关系运算符

小于(<)、小于等于(<=)、大于(>)、大于等于(>=)这几个关系操作符用于对两个值进行比较。最终返回 一个布尔值。

         var result1 = 5 > 3;var result2 = 5 < 3;console.log(result1, typeof result1);console.log(result2, typeof result2);

转型函数Boolean()

对任何数据类型的值调用Boolean()函数,总会返回一个Boolean值。

假值:

转换为false的值称为假值。包括这7个

  • false
    + null
    + undefined
    + NaN

    • “”
+ 0+ -0
         console.log(Boolean(false)); console.log(Boolean(undefined)); console.log(Boolean(null)); console.log(Boolean(NaN)); console.log(Boolean('')); console.log(Boolean(0)); console.log(Boolean(-0));


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

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

除了上述这7个假值以外,其他的值都转为true。包括空对象{}、空数组[]等。

实例方法

Boolean类型的实例重写了Object对象的通用方法toString()、toLocaleString()、toValue()这三个方法。

[toString()]

toString()方法返回Boolean的字符串(‘true’或’false’)

[toLocaleString()]

toLocaleString()方法返回Boolean的字符串(‘true’或’false’)

[valueOf()]

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

    var result = new Boolean(false);console.log(result.toString());// "false"console.log(result.toLocaleString());// "false"console.log(result.valueOf());// false

[注意]:理解基本类型的布尔值与Boolean对象之间的区别非常重要 —— 但建议永远也不要使用Boolean对象

Boolean类型(基本与包装类型)相关推荐

  1. 基本类型数组与包装类型数组相互转换

    /*** 基本类型数组与包装类型数组相互转换的工具类*/ public class CastArrayUtil {private CastArrayUtil(){}/*** 将基本类型数组转换为对应的 ...

  2. 面试必考之Java中String是基础类型?是包装类型?

    我们都知道,Java中String不属于基础数据类型.基础类型只有8中基本数据类型:byte.short.int.long.float.double.char.boolean,而String是最常用到 ...

  3. JS中数据类型、内置对象、包装类型对象、typeof关系

    平时在复习JS基础知识时,经常会遇到JS数据类型.基础数据类型.内置对象.包装类型对象,检测数据类型时,用到的typeof值,感觉都差不多,但是又有差异.今天特地整理下,方便理解. JS数据类型 基础 ...

  4. Java为什么要有基本数据类型和包装类型

    作为面向对象语言为代表的Java, 在很多任务场景中经常看到它的身影.那么,Java为什么要有基本数据类型和包装类型? 这个问题看似简单,其实也不好回答.毕竟这个问题不仅你我感觉到困惑,许多大佬也感觉 ...

  5. 基本类型和包装类型的区别详解

    六年前,我从苏州回到洛阳,抱着一幅"海归"的心态,投了不少简历,也"约谈"了不少面试官,但仅有两三个令我感到满意.其中有一位叫老马,至今还活在我的手机通讯录里. ...

  6. java的包装类型是什么用_Java基本类型和包装类型的区别

    包装类型可以为 null,而基本类型不可以 别小看这一点区别,它使得包装类型可以应用于 POJO 中,而基本类型则不行. POJO 是什么呢?这里稍微说明一下. POJO 的英文全称是 Plain O ...

  7. java中包装类型,自动装箱与自动拆箱简述

    首先介绍一下什么是包装类型 8种基本类型 :byte   short   int   long   float   double   boolean   char 在java语言中,包装类型就是,通过 ...

  8. 包装类型是什么?基本类型和包装类型有什么区别?

    Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开始引入了自动装箱/拆箱机制,把基本类型转换成包装类型的过程 ...

  9. java基本类型和包装类型

    java是面向对象的语言为什么还要有基本类型,只有包装类型完全面向对象不行吗? java语言可以只有基本类型吗,为什么还有要包装类型? java中的基本类型和包装类型:   基本类型     包装器类 ...

  10. java基本类型和包装类型的区别

    1.为什么存在基本类型: 在Java中正常应该设置对象,然后通过new一个对象存储在堆中,再通过栈的引用来使用对象,但对于简单的小的变量,用new 显的繁琐麻烦,所以产生了基本类型 2.有了基本类型, ...

最新文章

  1. rocks自建存储流程
  2. maya刷权重时有个叉_抖音账号养号技巧,如何增加抖音账号权重?
  3. 【MATLAB统计分析与应用100例】案例007:matlab数据的极差归一化变换
  4. 工作180:前端是业务需求理解
  5. crontab 日志_liunx 中定时清理过期日志文件
  6. python图像分类_用于实现用python和django编写的图像分类的Keras UI
  7. mysql索引类型 优劣_Mysql索引的类型和优缺点详解
  8. ID的权限问题导致免密码登录失效
  9. 【英语学习】【WOTD】two-bit 释义/词源/示例
  10. Tegra X1性能解析
  11. mac的 上传到linux服务器地址,【mac 怎么登录到 linux 服务器并传输文件?】-看准网...
  12. 能大大提升工作效率和时间效率的9个重要习惯
  13. spring quartz执行两次问题
  14. 浙江省高考计算机重点知识,2017届浙江省新高考信息技术考试标准
  15. 处理网页上的字符溢出的方法
  16. 23考研倒计时,冲刺阶段这样做事半功倍!
  17. 再掀融资潮 团购网仍后劲不足(团购现状分析)
  18. python 读取最新阿里云RDS数据库备份并下载
  19. HDU 4509 hash
  20. ITS Mobile Template interpretation failed. Template does not exist

热门文章

  1. 【网络通信 -- WebRTC】项目实战记录 -- WebRTC Native SDP 协商没有 H264 载荷问题
  2. MySQL命令行导入数据库
  3. php单例模式代码示例,php单例模式实例讲解
  4. 锐龙r5 6600h和酷睿i5 12500h处理器哪个好 r56600h和i512500h差多少
  5. intellij idea将web项目打成war包
  6. @JSONField注解常用使用方式
  7. 元素绝对定位在底部水平居中
  8. linux查看端口状态防火墙开放端口
  9. 【工业软件】工业软件对推进智能制造的价值
  10. 91手机助手、豌豆荚自动安装驱动实现方式技术调研总结