Boolean类型
Boolean的定义
隐士bool类型转换
实例代码:
<body>
<script>
const boolean = new Boolean(false);
console.log(typeof boolean);
console.log(boolean.valueOf());
//Boolean类型对象要用valueof获取boolean值
//因为Boolean对象一定为真
if(boolean.valueOf()){
console.log("Boolean类型");
}
if(boolean){
console.log("Boolean类型");
}
let hd=true;
console.log(hd);
if(hd){
console.log("直接定义变量,赋值boolean类型可以直接使用");
}
</script>
</body>
如果定义的变量不是Boolean类型,而是数值类型或其他类型,在作为bool类型使用时,会隐士转换为bool类型, 数值0隐式转换为false,非0变量转换为true。
<body>
<script>
let num=99;
if(num){
console.log("数值类型隐式转换为bool类型,非0变量转换为true。");
}
//但是数值类型和bool类型比较时,bool类型隐士转换成数值类型
//false转换成0 true 转换成1 所以下面这个比较为假
console.log(num==true);
</script>
</body>
数值类型除了0都为真,字符串类型除了空字符串都为真,因为类型数组和对象为真
<body>
<script>
let arr1=[];
console.log(Number(arr1));//数组为空时,转换为0
console.log(arr1 == false);
let arr2=[1];
console.log(Number(arr2));//只有一个值时,转换为1
console.log(arr2 == false);
let arr3=[1,2,3];//存在多个值时,转换为NaN
console.log(Number(arr3));
console.log(arr3 == false);
console.log(Boolean([]));//引用类型对象数组为真
</script>
</body>
显示转换bool类型
<body>
<script>
let num = 0;
console.log(typeof num);
//一个感叹号会转换成bool类型后取反,两个感叹号就两次取反转换成bool类型
num = !!num;
console.log(num);
//第二种显示转换的方法,调用Boolean构造函数
console.log(Boolean(num));
</script>
</body>
其他数据类型显示转换方式一样