- console.log(true)
- console.log(!true)
- var a = 1,b = 2
- console.log(!!(a + b))
- var b = new Boolean('false')
- console.log(b)
- // b是一个布尔对象 而不是一个值
- // b是一个包含一个true值的对象 可以将b当为一个盒子
- // 当作为一个构造函数(带有运算符 new)调用时,
- // Boolean() 将把它的参数转换成一个布尔值,
- // 并且返回一个包含该值的 Boolean 对象。
- // 把一个值装进一个对象的过程叫做 装箱 boxing
- // 把值从对象中取出来的过程叫 拆箱 unbonxing
- var a = Boolean('111')
- console.log(a)
- // 如果作为一个函数(不带有运算符 new)调用时,
- // Boolean() 只将把它的参数转换成一个原始的布尔值,
- // 并且返回这个值。
- // 如果参数为null、''、NaN、undefined、0、-0、false这些值的时候 则为false 否则为true
- var me = {}
- var me2 = new Object()
- console.log(!!me)
- console.log(!me2)
- // 一个空白对象会被认为true
- me.name = '李全福'
- me.age = 23
- me2.name = '王子豪'
- me2.age = 23
- console.log(!!me)
- console.log(!me2)
- new Boolean(true) //盒子内的值 true
- new Boolean(false) //盒子内的值 false
- new Boolean('false') //true
- new Boolean(0) //false
- new Boolean(2) //true
- new Boolean(null) //false
- new Boolean('') //false
- new Boolean('liquanfu') //true
- if(Boolean(0)){
- console.log('能执行吗?') //false
- }
- if(new Boolean(0)){
- console.log('能执行吗?') //能执行吗?
- }
- // 带有false值的一个对象
- // 不管布尔对象这个盒子里面装的是true还是false
- // 一个布尔对象都会被认为true 因为布尔对象是一个对象
- // 布尔对象与布尔值是完全不同的
- // 如果你在布尔场景下如if()永远不要使用布尔对象
- var str = true.toString()
- console.log(str)
- console.dir(str)
- // 试图对布尔值(包括数值、字符串)等 调用方法时
- // 会导致临时装箱 产生新的对象 在这个对象上调用方法
- // 方法调用完毕 对象即会消失
暂无评论