布尔 boolean
布尔值只有 两个值
true
和false
- 只有 0,NaN,’ ',null,undefined,false 六个值会转换成False,其余的都转换成 True,
没有任何特殊情况
*转换成布尔类型
其他类型转换哼布尔类型有三种方式:
1,Boolean
console.log(Boolean(10)); // true
console.log(Boolean('10')); // true
console.log(Boolean(true)); // true
console.log(Boolean(false)); // false
console.log(Boolean(null)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean('')); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(0)); // false
2,!/!!
// !单感叹号,先把后面的(值/表达式值返回值)转换成 Boolean 值,再对其取反
console.log(!2 + ''); // 'false'
console.log(!''); // true
console.log(![]); // false
console.log(!null); // true
console.log(!NaN); // true
// !!双感叹号的功能等同于 boolean,可以理解成语法糖的写法
console.log(!![]); // true
console.log(!!{}); // true
console.log(!!''); // false
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!NaN); // false
console.log(!!0); // false
console.log(!!false); // false
3,条件判断
// if 条件后面的 () 会对里面最终产出的值进行 Boolean 的转换,为true就执行语句
if (10 + '10px') {} // ('1010px') ==> true
if (10 - '10px') {} // (NaN) ==> false
if (!(10 - '10px')) {} // (!(NaN)) ==> (true) ==> true
if (NaN) {} // (NaN) ==> false
if (!NaN) {} // (!(NaN)) ==> (true) ==> true