原文作者: louis

原文链接: http://louiszhai.github.io/2015/12/11/js.boolean/

语法

众所周知, JavaScript有五个基本的值类型:number、string、boolean、null和undefined。除了null和undefined以外,其他三个具有所谓的基本包装对象。可以使用内置构造函数Number()、String()、Boolean()创建包装对象。

boolean是JS的6种数据类型(number,string,object,boolean,null,undefined)之一,有且只有两种值:true和false

1.使用Boolean(value)方法可以强制转换任意值为boolean类型,除了以下六个值,其他都是自动转为true:

  • undefined
  • null
  • -0
  • +0
  • NaN
  • ‘’(空字符串)
Boolean(undefined) // false
Boolean(null) // false Boolean(0) // false Boolean(NaN) // false Boolean('') // false 
  • 1
  • 2
  • 3
  • 4
  • 5

2.对象的转换规则

所有对象的布尔值都是true,甚至连false对应的布尔对象也是true。

请注意,空对象{}和空数组[]也会被转成true。

Boolean(new Boolean(false))// Boolean对象会转成true Boolean([]) // 空数组会转成true Boolean({}) // 空对象会转成true 
  • 1
  • 2
  • 3

3.其中有一些让人困惑的地方

&& 表达式从第一个开始,遇到值为false的表达式,则返回表达式本身,否则返回最后一个表达式

|| 和 ! 逻辑运算符原理类似

var obj = new Boolean(false);
console.log(obj && true);//true console.log(true && obj);//false 
  • 1
  • 2
  • 3

因此,第二个console实际上打印的是obj对象的值,即false

------------------------------------------------------------------------------

补充:number类型除了0对应false外,其他都对应true

转载于:https://www.cnblogs.com/yaohe/p/10136797.html

Boolean 类型转换相关推荐

  1. pgsql 比较数字字符串_postgreSQL数据类型转换字符串和数值

    1.将数值转成字符串类型 方法1:调用to_char(int, text)函数,int为要转换值,text为数值格式化模式,其中模式描述为: 模式 描述 9 带有指定数值位数的值 0 带前导零的值 . ...

  2. springMVC类型转换

    1)标量转换器 2)集合.数组相关转换器 自定义类型转换器 1.定义类型转换器 2.注册类型转换器 方法一 方法二 3.页面访问 4.接收请求 Spring MVC 框架的 Converter 是一个 ...

  3. JavaScript强制类型转换(一)String字符串型

    JavaScript强制类型转换(一) 概念 将其他的数据类型转换作为String字符串型 方式一:调用toString()方法 方式二:调用String()函数 方式三:拼接字符串 概念 类型转换主 ...

  4. 前端面试题笔记 2021.8.26

    2021.8.26学习笔记 如果需要匹配包含文本的元素,用下面哪种方法来实现? A. text() B. contains() C. input() D. attr(name) 正确答案: B tex ...

  5. 《JavaScript高级程序设计 第3版》-学习笔记-1

    P1-P30页 1.<script>标签的属性 async:async(html)  | async="async"(xhtml),表示立即下载脚本,但不马上执行(执行 ...

  6. Java各个类型转化

    #long 转string long a =1l; log.info("long类型转换String: {}",String.valueOf(a));string 转long lo ...

  7. 安卓开发—根据顾客预算显示食物信息

    一.效果展示 二.用到的主要控件 CheckBox RadioGroup/RadioButton ToggleButton SeekBar ImageView EditText 三.主要的代码 1.食 ...

  8. SpringMVC-转换器与格式化

    数据绑定,在我的理解里就是表单参数与方法形参之间的映射及转换关系的描述,比如,形参名称与表单参数名称的同名映射机制,@RequestParam value属性带来的别名机制(间接绑定),又或者说POJ ...

  9. 【Java学习路线之JavaWeb】Spring MVC框架入门教程

    文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...

最新文章

  1. 两台ubuntu虚拟机环境下hadoop安装配置
  2. 【MongoDB】chunk too big to move的解决方案
  3. 值得一读的《框架设计(第2版):CLR Via C#》
  4. ajax无刷新页面切换,历史记录后退前进解决方案
  5. 学成在线--5.CMS页面管理开发(修改页面)
  6. geant4运行例子_Geant4--一次编译,运行多个Run,极大提升模拟效率
  7. 服务器端系统饼图,服务器 操作系统 饼图
  8. 拥有所有归档文件,但没有备份情况下的数据文件恢复
  9. java中构造代码块、方法调用顺序问题
  10. 精简DropDownList用法
  11. 华为鸿蒙全程,华为2020年全线启用鸿蒙系统
  12. 20200225:最小路径和(leetcode64)
  13. bash的操作环境及环境设定
  14. 四旋翼无人机学习第5节--STM32最小系统外围电路分析
  15. 支付接口对接技术通用方法 第三方四方支付接口对接开发教程API集成服务
  16. 导数的概念和求导法则
  17. jdk官网下载与安装
  18. 互联网如何再定义古老的眼镜行业?
  19. 如何使用Imperva Incapsula优化和加速您的网站
  20. 怎么自测植物神经紊乱

热门文章

  1. 政务内网、 政务专网、政务外网的区别
  2. Java编程教程大全
  3. 【matlab】数值积分公式的程序实现
  4. 如何使用Divi建立会员网站 - 第2部分
  5. java request payload_前后端联调之Form Data与Request Payload,你真的了解吗?
  6. opencv--拍大头贴程序
  7. 基于Astar算法的栅格地图最优路径搜索matlab仿真,可以修改任意数量栅格
  8. Webug靶场平台下载以及安装教程
  9. 淘宝APP商品详情接口(商品信息,价格销量,优惠券信息,详情图等)
  10. LINUX IDL8.4安装 那些坑!