ES6 解构赋值

ES6的解构赋值允许从数组和对象中提取值,并赋值给变量。数组解构根据位置进行赋值,若解构失败变量值为undefined。对象解构则需变量名与属性名匹配。字符串解构类似数组,可获取指定位置的字符。函数参数的解构赋值允许实参直接赋值给形参,简化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解构赋值

 
定义:ES6允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,该操作即为解构( Destructuring ) 。
 

数组解构

 数组的元素是按次序排列的,变量的取值是由它的位置决定。

{
    let [r,s,t] = [1,2,3]
    console.log(r,s,t)//1 2 3
}

 数组解构时会严格按照顺序进行赋值,如果解构不成功,变量的值就等于undefined。

{
    let [r,s,t] = [2,3]
    console.log(r,s,t)//2 3 undefined
}

 只有当变量严格等于undefined时,默认值才会生效

在这里插入图片描述

 交换两变量值,不借助中间变量 😃

{
    let a = 2
    let b = 3
    [a,b] = [b,a]
    console.log(a,b)//3 2
}

 结合剩余参量 😃

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

 

对象解构

 对象的属性没有次序,变量必须与属性同名才能取到正确的值

{
    let{age:a,name:n} = {name:"Ann",age:20}
    // console.log(age,name)//报错
    console.log(n,a)//Ann 20
}

此处name和age是匹配模式,真正的变量是a,n

{
    let {age,name} = {name:"Ann",age:20}//等价于下一行代码
    //let {age:age,name:name} = {name:"Ann",age:20}
    console.log(age,name)//20 Ann
}

 对已经声明的对象进行解构时需要加上( )将解构赋值整个看作表达式,添加( )

let obj = {}
let arr = [];
({p1 : obj.data,p2 : arr[0]} = {p1:123,p2:true});
console.log(obj,arr)// { data: 123 } [ true ]

 

字符串解构

 将字符串看作一个类似于数组的对象。

const [a,b] = 'qwe'
console.log(a,b)//q w

 类似于数组的对象都有一个length属性,因此还可以对这个属性进行解构

let {length:len} = 'hello'
console.log(len)//5

函数参数的解构赋值

 函数调用时,会将实参传递给形参,其过程是实参复制给形参。因此,也可以使用解构赋值。
 
 采用数组解构赋值:

function add([x,y = 10]){
    return x+y
}
let r = add([1])//将1赋给x
console.log(r)// 11

 采用对象解构赋值:

function add({x,y=10}){
    return x+y
}
let r = add({x:20})//将20赋给x
console.log(r)//30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值