(二)6.解构赋值19-08-06

2019-08-07  本文已影响0人  你坤儿姐

一数组解构赋值

{
  let a,b,rest;
  [a,b]=[1,2];
  console.log(a,b);
}

打印结果:1 2

{
  let a,b,rest;
  [a,b,...rest]=[1,2,3,4,5,6];
  console.log(a,b,rest);
}

打印结果:1 2 (4) [3, 4, 5, 6]

{
  let a,b,c,rest;
  [a,b,c=3]=[1,2];
  console.log(a,b,c);
}

打印结果:1 2 3

{
  let a,b,c,rest;
  [a,b,c]=[1,2]; //没有配对成功c值会显示undefined
  console.log(a,b,c);
}

打印结果:1 2 undefined

举例应用场景1 变量的交换
{
  let a=1;
  let b=2;
  [a,b] = [b,a];
  console.log(a,b);
}

打印结果:2 1

举例应用场景2
{
  function f() {
    return [1,2];
  }
  let a,b;
  [a,b]=f();//使用es6解构赋值,不需要先找个地方存储1,2
  console.log(a,b);
}

打印结果:1 2

举例应用场景3 返回多个值时可以选择性的接收某几个变量
{
  function f(){
     return [1,2,3,4,5]
  }
  let a,b,c;
  [a,,,b]=f();
  console.log(a,b);
}

打印结果:1 4

举例应用场景4 第一个取出来其他的赋值为数组
{
  function f(){
    return[1,2,3,4,5]
  }
  let a,b,c;
  [a,...b]=f();
  console.log(a,b);
}

打印结果:1 (4) [2, 3, 4, 5]

{
  function f(){
    return[1,2,3,4,5]
  }
  let a,b,c;
  [a,,...b]=f();
  console.log(a,b);
}

打印结果:1 (3) [3, 4, 5]

对象解构赋值

{
  let a,b;
  ({a,b}={a:1,b:2})
  console.log(a,b);
}

打印结果:1 2

{
  let o={p:42,q:true};
  let {p,q}=o;
  console.log(p,q);
}

打印结果:42 true

{
  let {a=10,b=5}={a:3};
  console.log(a,b);
}

打印结果:3 5

对象解构赋值实用场景1 特别实用需熟练
{
  let metaData={
    title: 'abc',
    test: [{
      title:'test',
      desc:'description'
    }]
  }
  let{title:seTitle,test:[{title:cnTitle}]}=metaData;
  console.log(esTitle,cnTitle);
}

打印结果:abc test

上一篇下一篇

猜你喜欢

热点阅读