Boolean类型是JavaScript原始数据类型(primitive type)之一;常用来表示 真或假,是或否;这个类型只有两个值:保留字true和false
一般用于控制语句:如下
if(Boolean){
//do something
console.log('true')
}else{
//do something
console.log('false')
}
JavaScript的其他数据类型都可以转换成Boolean类型,注意!!!只有这几种类型会转换为false
- undefined
- null
- 0
- -0
- NaN
- "" (空字符串)
其他的都会转换为true。空对象{},空数组[] , 负数 ,false的对象包装等
if(-1){
console.log('-1转换为true');
}
if({}){
console.log('{}转换为true');
}
if([]){
console.log('[]转换为true');
}
if(new Boolean(false)){
console.log('new Boolean(false)转换为true');
}
终于到了重点,new Boolean(false)是布尔值的包装对象 typeof (new Boolean(false)) // 'object' ,所以 转换为boolean是true,而不是false
我们知道,原始数据类型是没有方法的, 但是我们却可以有如下用法
true.toString() //'true'
这是因为,在对原始类型使用方法时,会自动通过Boolean()构造一个临时对象,访问的方法均来自这个临时对象,同样的数字和字符串对应有Number()和String() 所以都可以调用方法如(toString());而 undefined 和 null 没有对应的包装对象,所以访问他们的属性会报错,如下。