学会这 12 个解构用法,代码量能省一半

开发
解构赋值是 ES6 带来的重要特性之一,掌握好它不仅能让代码更简洁,还能大大提高开发效率。分享 12 个实用的解构用法,让你的代码更优雅。

解构赋值是 ES6 带来的重要特性之一,掌握好它不仅能让代码更简洁,还能大大提高开发效率。分享 12 个实用的解构用法,让你的代码更优雅。

1. 数组基础解构

最基本的数组解构让我们能够轻松地提取数组元素:

// 基础解构
const [first, second] = [1, 2, 3];
console.log(first);  // 1
console.log(second); // 2

// 跳过元素
const [, , third] = [1, 2, 3];
console.log(third);  // 3

2. 对象解构重命名

当我们需要避免命名冲突时,可以给解构的属性起新名字:

const person = {
  name: '张三',
  age: 25
};

const { name: userName, age: userAge } = person;
console.log(userName); // '张三'
console.log(userAge);  // 25

3. 设置默认值

解构时可以设置默认值,防止取到 undefined:

// 数组默认值
const [x = 1, y = 2] = [undefined, null];
console.log(x); // 1
console.log(y); // null

// 对象默认值
const { title = '默认标题', count = 0 } = {};
console.log(title); // '默认标题'
console.log(count); // 0

4. 嵌套解构

对于复杂的嵌套数据结构,我们可以使用嵌套解构:

const user = {
  id: 1,
  info: {
    name: '李四',
    address: {
      city: '北京'
    }
  }
};

const { info: { name, address: { city } } } = user;
console.log(name); // '李四'
console.log(city); // '北京'

5. 结合扩展运算符

扩展运算符配合解构使用,能够轻松处理剩余元素:

6. 函数参数解构

在函数参数中使用解构可以让代码更清晰:

7. 动态属性解构

可以使用计算属性名进行解构:

8. 解构用于交换变量

使用解构可以优雅地交换变量值:

9. 链式解构赋值

可以在一行中进行多个解构赋值:

10. 解构配合正则匹配

在处理正则表达式结果时,解构特别有用:

11. 解构导入模块

在导入模块时,解构可以只引入需要的部分:

12. 条件解构

结合空值合并运算符,可以实现条件解构:

const data = null;
const { value = 'default' } = data ?? {};
console.log(value); // 'default'

欢迎补充。

责任编辑:赵宁宁 来源: JavaScript
相关推荐

2021-04-26 15:02:13

程序员工具系统

2015-07-27 10:24:01

苹果中国

2020-12-04 10:11:26

Unsafejava并发包

2013-02-25 10:11:35

4GLTE商用网络

2011-05-19 09:55:38

三星双面打印

2020-12-17 12:06:24

大数据大数据技术

2013-11-27 15:48:56

移动中间件厂商

2018-06-03 08:49:21

2020-02-21 20:21:45

线程共享资源

2022-09-01 13:25:54

isEmptyisBlank

2021-06-30 00:14:24

JS代码数组

2020-10-13 17:30:45

Python代码内存

2016-12-16 13:07:30

云存储运营混合云

2024-04-15 03:00:00

python代码开发

2010-01-21 10:42:54

福布斯比尔·盖茨

2021-04-08 09:49:49

MySQL索引数据库

2025-02-19 08:50:00

箭头函数thisJavaScript

2010-09-17 16:21:33

系统升级

2017-02-27 16:54:20

HTTPS网络流量互联网

2011-08-17 10:53:16

Firefox 7
点赞
收藏

51CTO技术栈公众号