ES6——解构赋值

来源:互联网 发布:java认证培训 编辑:程序博客网 时间:2024/06/04 23:22

数组类型


左右各一个数组

let a,b;[a,b] = [1,2];console.log(a,b);  // 1, 2


数值赋值给变量(rest)

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


数组嵌套

var [a,[b,c]] = [1,[2,3]];console.log(a,b,c);  // 1, 2, 3


指定默认值

var [a,b,c,d = 4] = [1,2,3];console.log(a,b,c,d);  // 1, 2, 3, 4



使用场景


变量交换

let a = 1;let b = 2;[a,b] = [b,a];console.log(a,b);   // 2, 1


返回值赋给变量

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


只选择需要的返回值

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



对象类型


左右各一个对象

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


默认值


后面的a覆盖了前面的a

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


获取json数据的值

{    let manInfo = {            name: 'Tim Chen',            more: [{                age: '23',                sex: 'male',            }]              }    let {name:myName, more:[{age:myAge}]} =  manInfo;    console.log(myName,myAge); // Tim Chen , 23}



对象方法类型


把对象赋给一些特殊对象,即相当于使用对象的方法

let {floor,ceil} = Math;let a = 1.9;console.log(floor(a));



字符串类型


获取字符串长度

let {length} = 'Hello';console.log({length});  // {length:5}


解构字符串

let [a,b,...c] = 'Hello';console.log(a,b,c);  // H e ["l", "l", "o"]



函数类型


解构函数参数

var arr = [1,2];function test([a,b]){    console.log("a:", a);    console.log("b:", b);}console.log(test(arr));  // a: 1   b: 2



不区分参数顺序

注意:这里的参数是对象不是数组!!!

var obj = {b:2, a:1};function test({a,b}){    console.log("a:", a);    console.log("b:", b);}console.log(test(obj));  // a: 1   b: 2




参数默认值

var obj = {b:2};function test({a = 10, b}){...}
原创粉丝点击