- Boolean()后为false的值:false、‘’、0、NaN、undefined、null,可以转换为true,false
- 流程控制语句可以触发强转:如if()
- boolean有基本类型(false、true)和引用类型(通过new构造函数:new Boolean(false))
- ||、&&也会强转,规则和Boolean一样。返回值为真假的都会强转
- ||:有真结果就为真,并返回最开始为真的项,没有返回最后一项。一般用在函数参数默认值上
- &&:有假结果就为假,并返回最开始为假的项,没有返回最后一项
let obj = new Boolean(false);
//根据构造函数Boolean,new出来的实例对象,所以原型链上有Boolean,原型对象(Boolean.prototype)为对象,所以原型链上还有Object
//obj.__proto__ === Boolean.prototype
//Boolean.prototype.__proto__ === Object.prototype
//Boolean.__proto__ === Function.prototype
let a = false;
typeof obj //object
typeof a //boolean
obj instanceof Boolean //true
a instanceof Boolean //false
obj instanceof Object //true
a instanceof Object //false
obj || 0 //obj,非null的对象强转都为真