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