Boolean转换相关问题

转换规则

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined 不适用 undefined

一些实例

1
2
3
4
5
6
7
8
9
10
11
var x = new Boolean(false);
console.log(x); //Boolean {false}
if (x) {
console.log('hi');
}
var y = Boolean(0);
console.log(y); //false
if (y) {
console.log('hello');
}
//输出hi

这里存在坑,x是一个Boolean对象,在if判断中x不为null所以转换为true,于是最后输出hi

1
2
3
4
5
6
7
8
9
10
11
12
console.log(Boolean([0])); //true
console.log(Boolean(''));//false
console.log(Boolean('false')); //非空字符串,返回true
console.log(Boolean(false)); //false
console.log(Boolean(null)); //false
console.log(Boolean(0)); //false
console.log(Boolean(+0)); //false
console.log(Boolean(-0)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean(undefined)); //false
//总结:除了0、null、undefined、NaN、''、false 返回false之外
//其他的都返回true

Boolean转换相关问题
https://blog-theta-ten.vercel.app/2021/10/14/Boolean转换相关问题/
作者
Chen
发布于
2021年10月14日
许可协议