es6(变量的解构赋值)

#从数组和对象中提取值,对变量进行赋值,这种被称为解构

let [x,y,z]=new Set(["a","b","c"])
console.log(x);//a
复制代码

#对象的解构赋值是先找到同名属性,然后再赋值给对应得到变量,真正赋值的是后者

var {foo:baz}={foo:"aaa",bar:"bbb"}
baz//"aaa"
foo//error
复制代码

#默认值生效的条件是对象的属性值严格等于undefined

var {x=3}={x:undefined};
x//3
var {x=3}={x:null};
x//null
复制代码

#字符串的解构赋值

const [a,b,c,d,e]='hello';
a//"h" b//"e"   c//"l"   d//"l"  e//"o "
复制代码

#解构赋值的用途

1)交换变量的值[x,y]=[y,x]
2)从函数返回多个值
function example(){
    return [1,2,3];
}
var [a,b,c]=example();
//返回对象
function example(){
    return {
        foo:1,
        bar:2
    };
}
var {foo,bar}=example();
3)提取JSON数据
var jsonData={
    id:42,
    status:"OK",
    data:[867,5309]
}
let{id,status,number}=jsonData;
console.log(id,status,number);
4)遍历Map解构
var map=new Map();
map.set('first','hello');
map.set('second','hello');
for(let[key,value] of map){
    console.log(key+" is "+value);
}
->first is hello
->second is hello
复制代码

转载于:https://juejin.im/post/5b0f6438518825153d28b442

你可能感兴趣的:(es6(变量的解构赋值))