2024年前端最新JavaScript进阶(十九):ES6 对象解构(1),2024京东前端面试真题解析

最后

为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】


其中,`identifier`是要访问的属性名称,`expression`为一个对象。


这是使用属性访问器的等效代码:



const identifier = expression.identifier;


让我们在实践中尝试对象分解:



const hero = {
name: ‘Batman’,
realName: ‘Bruce Wayne’
};
const { name } = hero;
name; // => ‘Batman’


该语句`const { name } = hero`定义变量name,并使用hero.name对其进行初始化。


#### 2.2 提取多个属性


要将对象分解为多个属性,请枚举任意数量的属性,并,在之间添加逗号:



const { identifier1, identifier2, …, identifierN } = expression;


其中`identifier1,…identifierN`是要访问的属性的名称,`expression`为对象。


这是等效的代码:



const identifier1 = expression.identifier1;

const identifier2 = expression.identifier2;

// …

const identifierN = expression.identifierN;


让我们再次看一下第一部分中的示例,其中提取了2个属性:



const hero = {
name: ‘Batman’,
realName: ‘Bruce Wayne’
};
const { name, realName } = hero;
name; // => ‘Batman’,
realName; // => ‘Bruce Wayne’


`const { name, realName } = hero`创建2个变量`name`、`realName`分配相应属性`hero.name`和`hero.realName`。


### 三、使用解构从对象中获取值


对象解构最基本的用法是从对象中检索属性值。


例如,定义了一个对象,包含两个属性:name和age。



const User = {
name: ‘No Silver Bullet’,
age: 18
}


传统上,使用点 (`.`) 表示法或下标 (`[]`) 表示法从对象中检索值。下面的代码片段显示了使用点符号检索对象的值id和name从对象中检索值的示例。



const name = User[‘name’];
const age = User.age;


当然这两种方式在当前情况下是没有问题的,但是当User的属性多了,就要不停的复制粘贴,产生很多重复代码。


有了解构赋值,就可以快速获取值。例如使用对象的键名来创建变量,并将对象的值分配给相同的键。这样无论有多少属性,只要赋值属性名即可,同样的也减少了很多重复代码。



const { name, age } = User;


### 四、使用解构从嵌套对象中获取值


在上面的例子中,User只是一个简单的单层对象,在日常的开发中会经常遇到嵌套对象,那么使用解构赋值,该如何检索嵌套对象中的值。下面重新定义User对象,给这个对象新增一个contact属性,它包含着User的phone。



const User = {
name: ‘No Silver Bullet’,
age: ‘18’,
contact:{
phone:‘110’,
}
}


如果用`.`的方式获取phone值,需要提供以下方式。



const phone = User.contact.phone;


若使用解构赋值,写法如下:



const {contact:{phone}}=User
console.log(phone) // 输出10.


无论嵌套层有多深,只要按照这个写法,一定会拿到具体的值。


### 五、使用对象解构定义一个新变量以及默认值


在日常开发的过程中,可能会遇到很多极端的情况,例如后端传过来的对象,可能会缺失某些字段。



const User = {
name: ‘No Silver Bullet’,
}


或者属性没有具体的值:



const User = {
name: ‘No Silver Bullet’,
age: ‘’
}


当使用解构赋值的话:无论是否存在age属性的话,都会创建age变量。



const { name, age } = employee;


当User.age没有具体值时,可以使用以下方式给age一个默认值。



const { name, age=18 } = employee;


如何创建一个全新的变量并分配一个使用对象属性值计算的值?


当需要输出User属性的组合值时,应该怎么做呢?示例如下:



const { name,age,detail = ${name} 今年 ${age} } = User ;
console.log(detail); // 输出:No Silver Bullet 今年 18


### 六、使用 JavaScript 对象解构别名


在 `JavaScript` 对象解构中,可以为解构变量`alias`命名,以减少变量名冲突。



const User = {
name: ‘No Silver Bullet’,
age: ‘’
}


假设想用解构赋值获取age属性的值,但是代码中已经定义age这个变量,这个时候就需要在解构时定义别名解决命名冲突问题。



const { age: userAge } = User;
console.log(userAge); // 18


而如果使用age的话,会报错。



console.log(age);


![在这里插入图片描述](https://img-blog.csdnimg.cn/f8662592c385429cbcc3e3124982566f.png)


### 七、使用对象解构处理动态名称属性



### 最后

为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**

![](https://i-blog.csdnimg.cn/blog_migrate/7cd67000356d0712bceb8ecf71725b99.png)

![](https://i-blog.csdnimg.cn/blog_migrate/8bb05c431555e98a9a843fe5fa668b9d.png)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值