JavaScript 布尔对象

黄良钵

分类: 程序开发 538 0

  1. console.log(true)
  2. console.log(!true)
  3. var a = 1,b = 2
  4. console.log(!!(a + b))
  5. var b = new Boolean('false')
  6. console.log(b)
  7. // b是一个布尔对象 而不是一个值
  8. // b是一个包含一个true值的对象 可以将b当为一个盒子
  9. // 当作为一个构造函数(带有运算符 new)调用时,
  10. // Boolean() 将把它的参数转换成一个布尔值,
  11. // 并且返回一个包含该值的 Boolean 对象。
  12. // 把一个值装进一个对象的过程叫做 装箱 boxing
  13. // 把值从对象中取出来的过程叫 拆箱 unbonxing
  14. var a = Boolean('111')
  15. console.log(a)
  16. // 如果作为一个函数(不带有运算符 new)调用时,
  17. // Boolean() 只将把它的参数转换成一个原始的布尔值,
  18. // 并且返回这个值。
  19. // 如果参数为null、''、NaN、undefined、0、-0、false这些值的时候 则为false 否则为true
  20. var me = {}
  21. var me2 = new Object()
  22. console.log(!!me)
  23. console.log(!me2)
  24. // 一个空白对象会被认为true
  25. me.name = '李全福'
  26. me.age = 23
  27. me2.name = '王子豪'
  28. me2.age = 23
  29. console.log(!!me)
  30. console.log(!me2)
  31. new Boolean(true//盒子内的值 true
  32. new Boolean(false//盒子内的值 false
  33. new Boolean('false') //true
  34. new Boolean(0) //false
  35. new Boolean(2) //true
  36. new Boolean(null//false
  37. new Boolean(''//false
  38. new Boolean('liquanfu') //true               
  39. if(Boolean(0)){
  40.     console.log('能执行吗?') //false
  41. }
  42. if(new Boolean(0)){
  43.     console.log('能执行吗?') //能执行吗?
  44. }
  45. // 带有false值的一个对象
  46. // 不管布尔对象这个盒子里面装的是true还是false
  47. // 一个布尔对象都会被认为true 因为布尔对象是一个对象
  48. // 布尔对象与布尔值是完全不同的
  49. // 如果你在布尔场景下如if()永远不要使用布尔对象
  50. var str = true.toString()
  51. console.log(str)
  52. console.dir(str)
  53. // 试图对布尔值(包括数值、字符串)等 调用方法时
  54. // 会导致临时装箱 产生新的对象 在这个对象上调用方法
  55. // 方法调用完毕 对象即会消失
  • 0人 Love
  • 0人 Haha
  • 0人 Wow
  • 0人 Sad
  • 0人 Angry
JavaScript、布尔对象

作者简介: 黄良钵

打赏

博客站长,前端开发工程师

共 0 条评论关于 “JavaScript 布尔对象”

Loading...