4.js 1.1 KB

12345678910111213141516171819202122232425262728
  1. //! 对象解构
  2. var obj = { foo: 'aaa', bar: 'bbb' };
  3. //TODO 需求:创建两个变量 foo 和 bar;foo = obj.foo; bar = obj.bar
  4. // var foo = obj.foo;
  5. // var bar = obj.bar;
  6. //TODO 对象解构
  7. // let { foo: foo, bar: bar } = obj;
  8. //! 上面对象解构的写法 是有简写方式的
  9. // 由于 我们定义的变量 和 解构对象的属性名 一样,因此可以简写为如下形式:
  10. let { foo, bar } = { foo: 'foo', bar: 'bar' };
  11. console.log(foo, bar);
  12. //! 实际工作中,为了使代码更简写通常我们在解构的时候,会定义变量名和其解构对象的属性名一致,这样就可以使用上面的简写语法格式
  13. // 如果 上面已经定义了foo和bar变量,此时就不能在使用简写语法。
  14. // let { foo, bar } = { foo: 'foo', bar: 'bar' };
  15. // 我们就可以通过完整语法 对变量进行重命名
  16. let { foo: foo1, bar: bar1 } = { foo: 'foo', bar: 'bar' };
  17. console.log(foo1, bar1);
  18. //! 同样,如果解构时失败了,那么定义的变量会赋予一个undefined值
  19. let { baz } = { foo: 'aaa', bar: 'bbb' };
  20. console.log(baz); // undefined