Javascript——js中数组、对象的解构

js解构:

所谓解构,就是按照一定模式,从数组和对象中提取值,对变量进行赋值。

1.数组中的解构。


let [a,b,c]=[1,2,3]
[1,2,3] 数组中的值会依次的赋值给a,b,c

如果变量的个数小于数组的元素的个数,无影响。
let [a, b] = [1,2,3]
//a 1 
//b 2 

如果变量的个数大于数组的元素的个数,值为undefined
let [a, b, c, d] = [1,2,3]
//a 1 
//b 2 
//c 3 
//d undefined 

如果说需要取数组的一部分元素,在解构的时候使用,进行占位,用标识符接收我们真正需要的元素。
let [, b] = [1,2,3]
//b  2
let [a,...b] = [1,2,3,4]
//a 1
//b [2, 3, 4]
⚠️注意的是:拓展运算符(也就是…)只能出现在解构语法中的最后。

2.对象中的解构:

  • 对象的解构所用的变量要和对象的属性名一样才能拿到相应的值。没有顺序要求
let obj = {a: 1, b: 2};
let {x, y} = obj;//错误🙅的
//x undefined
//y undefined

let {a, b} = obj;//正确的🙆
//a 1
//b 2

在对象的解构中,还能为变量重命名:
let obj = {a: 1, b: 2};
let {a: x, b: y} = obj;
//a 报错
//b 报错
//x 1
//y 2


对象的解构同样能够使用默认值:
let x, y;
({a: x, b: y, d: z = {num: 1}} = {a: 1, b: 2, c: 3});
//x 1
//y 2
//z {num: 1}

为什么 JS 中存在解构?实际应用

eg:
const names = {
    taylor: '码云笔记',
    shawn: '前端博客',
    zayn: '前端开发',
    halsey: '前端技术',
}
如果让你手动打印所有人名到控制台,你可能会这样写:
console.log(names.taylor)//笔记
console.log(names.shawn)//博客
.....


**使用对象解构简写:**
const names = {
    taylor: '云笔记',
    shawn: '博客',
    zayn: '开发',
    halsey: '技术',
}

const { taylor, shawn, zayn, halsey} = names
console.log(taylor)//云笔记
console.log(shawn)//博客
console.log(zayn)//开发
console.log(halsey)//技术

嵌套对象和数组解构

const taylor = {
  name: '空',
  age: 21,
  address: {
      city: 'Hang Zhou',
      country: 'China',
  },
  albums: ['Lover', 'Evermore', 'Red', 'Fearless'],
}

const {
  name,
  age,
  address: { city },
  albums: [lover, ...rest],
} = taylor

console.log(name) // 空
console.log(age) // 21
console.log(city) // Hang Zhou
console.log(lover) // Lover
console.log(rest) // [ 'Evermore', 'Red', 'Fearless' ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值