js解构赋值

2 篇文章 0 订阅

解构赋值

形式

  • let [变量1:值1,变量2:值2……] = 数组
  • let [变量1,变量2……] = 数组
  • let {变量1:属性1,变量2:属性2……} = 对象
  • let {变量1,变量2……} = 对象

要求右边的变量或对象含有左边的变量名字,否则就为undefined

解构赋值例子

结构默认值

let [a, b, c = 1] = [1,2];
//a : 1,b : 2,c : 3

let {n, a} = {n:"泡泡龙404",a:18};
//n:'泡泡龙404',a:18

数组的解构赋值

let [a, b, c] = [1, 2];
//a:1,b:2,c:undefined

let [a, b] = [1, [2, 3]];
//a:1,b:[2, 3]

let [a,b] = [0,[1,2,3],[4,5]][2]
//相当于[a,b] = [4,5]   a:4,b:5

let [a,[b,[c,d]]] = [1,[2,[3,4]]]
//a:1,b:2,c:3,d:4

let [a,b,c,d] = "123";
//a:'1',b:'2',c:'3',d:undefined

//当值为undefined时,会用到默认值
let [a = 1,b = 2,c = 3] = [4,5,undefined];
//a:4,b:5,c:3

对象的解构赋值

let {n:name,a:age} = {n:"泡泡龙404",a:10};
//name:'泡泡龙404',age:10

//当属性和值都采取相同命名时可以只写如下形式
let {n,a} = {n:"泡泡龙404",a:10};//同{n:n,a:a}
//n:'泡泡龙404',a:10
let{a:age,n:name} = {n:"泡泡龙404",a:10};
//反过来写结果也相同,name:'泡泡龙404',age:10

let {abs,random} = Math;
//abs,random都是Math对象中的函数,具体可查看Math的内容


函数参数的解构赋值

function add([a = 3,b = 4]){
    console.log(a + b);
}
add([1,2]);//3
add();//报错
add([])//7


function outPut(obj){
    console.log(`${obj.age}岁了!`);
}
outPut({age:200});//我200岁了

function outPut({name,age,sex}){
    console.log(`我是${name},性别${sex},今年${age}`);
}
outPut({name:"泡泡龙404",age:100,sex:"男"});
//我是泡泡龙404,性别男,今年100岁

function outPut({name,age,sex = "女"}){
    console.log(`我是${name},性别${sex},今年${age}`);
}
outPut({name:"泡泡龙404",age:100});
//我是泡泡龙404,性别女,今年100岁


function show({a, b} = {a:1, b:2}){
    console.log(a,b);
}
show();//1 2
show({});//undefined undefined
show({b:1});//undefined 1

function show({a = 3, b = 4} = {a:1, b:2}){
    console.log(a,b);
}
show();//1 2
show({});//3 4
show({b:1});//3 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值