声明定义

  1. 字面量定义布尔值
  2. 对象方式定义布尔值 ```javascript let foo = true; let bar = new Boolean(false);

console.log(foo,bar);

  1. <a name="VJZzz"></a>
  2. ### 隐式转换
  3. 基本上所有类型都可以隐式转换为 Boolean类型。
  4. | 数据类型 | true | false |
  5. | --- | --- | --- |
  6. | String | 非空字符串 | 空字符串 |
  7. | Number | 非0的数值 | 0 、NaN |
  8. | Array | 数组不参与比较时 | 参与比较的空数组 |
  9. | Object | 所有对象 | |
  10. | undefined | 无 | undefined |
  11. | null | 无 | null |
  12. | NaN | 无 | NaN |
  13. 注意:
  14. 1. 当与boolean类型比较时,会将两边类型统一为数字1或0。
  15. 1. 如果使用Boolean与数值比较时,会进行隐式类型转换 true转为1,false 转为0。
  16. 1. 引用类型的Boolean值为真,如对象和数组。
  17. ```javascript
  18. console.log(3 == true); // false
  19. console.log(0 == false); // true
  20. if ([]) console.log('true'); // true
  21. if ({}) console.log('true'); // true

显式转换

  • 使用 !! 转换布尔类型。
  • 使用 Boolean 函数可以显式转换为布尔类型。
    1. console.log(!!3); // true
    2. console.log(Boolean(0)); // false