6.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //! 实际开发中,解构失败后会给变量一个undefined值。这个值不能参加其他的元素。
  2. //! 因此,在解构的时候可以指定默认值,这样解构失败后参加运算也不会出现意外的结果
  3. //! 解构的时候 一定注意:对象的解构赋值 null和undefined值是不可以解构
  4. //! 基本数据类型 number bool string 可以,底层会将这些基本的数据类型 转换成 对象,在去解构。
  5. var { a } = {};
  6. console.log(a);
  7. console.log(a + 1);
  8. console.log(a + 'hehe');
  9. // 下面代码就是在解构时指定变量b的默认值为0,如果解构失败,就会使用该默认值。
  10. // 只有解构时变量的值 严格等于(===)undefined 才算是解构失败
  11. var { b = 0 } = {};
  12. console.log(b); // 0
  13. console.log(b + 1); // 1
  14. var [c = 10] = [];
  15. var [d = 10] = [0];
  16. var [e = 20] = [null];
  17. var [f = 100] = [undefined];
  18. console.log(c); // 10
  19. console.log(d); // 0
  20. console.log(e); // null
  21. console.log(f); // 100
  22. function sum([x = 0, y = 0]) {
  23. return x + y;
  24. }
  25. console.log(sum([])); // 0
  26. //! 基本数据类型 对应 都有自己的 对象类型
  27. // 数字 number
  28. var a = 1; // 对应对象类型 new Number(1)
  29. console.log(new Number(1));
  30. console.log(new String('string'));
  31. console.log(new Boolean(true));
  32. //! 扩展:字符串 存储逻辑和数组相似 因此字符串也可以像数组那样解构
  33. var [a, b] = 'string';
  34. console.log(a, b); // s t