解构赋值

198 阅读1分钟

定义:ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

数组的解构赋值

1.普通用法:
  let [a,b,c]=[1,2] 
  //结果:a=1,b=2,c=undefined
2.嵌套数组:
  let [foo,[[bar],baz]]=[1,[[2],3]];
  //结果:foo=1,bar=2,baz=3
3.赋予默认值:
  let [a,b,c='默认值'] = [1,2]
4.let [,,third]=["foo","bar","baz"];
  //结果:third = "baz"
  let [x,,y]=[1,2,3]
  //结果:x=1,y=3
  let [head,...tail]=[1,2,3,4];
  //结果:head = 1,tail=[2,3,4]
  let [x,y,...'z']=['a']
  //结果:x='a',y=undefined,z=[]
 1.如果结构不成功,变量的值就等于undefined
 
 2.只有当一个数组成员严格等于undefined,默认值才会生效

对象的解构赋值

let {miao,ketang}={miao:1,ketang:2}
let {miao=100,ketang}={ketang:2}默认值
let {miao:leo,ketang}={ketang:2}别名

var miaov ={
    fn:function(){},
    add:function(){alert('111')},
    isFunction:function(){}
}
let {fn,add,isFunction,isArray=function(){}}= miaov;
cosnole.log(fn);

·字符串的解构赋值

var [a,b,c]  = 'hello';

·函数参数的解构赋值

function fn({a,b,c,d='get'}){
  console.log(a);
   console.log(b);
   console.log(c);
   console.log(d);
}
fn({a:1,b:2,c:3})

模板字符串

定义:模板字符串是增强版的字符串,用反引号标识。在占位符${}中写入表达式

var miaov  = 'ketang';
let str=`<ul>
    <li>${miaov}</li>
    <li>${1+1}</li> 
    <li>${true?1:2}</li>
</ul>`