我一直在阅读ES6 中引入的解构赋值。
这种语法的目的是什么,为什么引入它,以及在实践中如何使用它的一些示例?
我一直在阅读ES6 中引入的解构赋值。
这种语法的目的是什么,为什么引入它,以及在实践中如何使用它的一些示例?
什么是解构赋值?
该解构赋值语法是JavaScript表达式,使得它可以从阵列解压缩的值,或从属性的对象,为不同的变量。
- MDN
好处
A.使代码简洁且更具可读性。
B.我们可以很容易地避免重复破坏表达式。
一些用例
1.从对象,数组中获取变量中的值
2. 将任意位置的阵列与另一个阵列组合。
3. 仅更改对象中所需的属性
4. 创建对象的浅拷贝
5. 从参数中提取值到独立变量中
6.从对象中获取动态键值
7. 用一些默认值从其他对象构建一个对象
8. 交换value
9. 获取对象的子集
9.1 对象的子集:
9.2使用逗号运算符和解构获取对象的子集:
10. 做数组到对象的转换:
11.在功能中设置默认值。(阅读此答案以获取更多信息)
12.length
从数组中获取属性,函数名称,参数数量等。
它类似于您可以使用相同的变量名称提取的内容
解构赋值是一个 JavaScript 表达式,它可以将数组中的值或对象中的属性解包为不同的变量。让我们使用解构赋值从数组中获取月份值
var [one, two, three] = ['orange', 'mango', 'banana'];
console.log(one); // "orange"
console.log(two); // "mango"
console.log(three); // "banana"
并且您可以使用解构赋值获取对象的用户属性,
var {name, age} = {name: 'John', age: 32};
console.log(name); // John
console.log(age); // 32
Javascript 的 De-structured assignment 可能是从 Perl 语言中汲取的灵感。
这通过避免编写 getter 方法或包装函数来促进重用。
我发现一个特别有用的最佳示例是重用返回比所需数据更多的数据的函数。
如果有一个函数返回列表或数组或json,而我们只对列表或数组或json的第一项感兴趣,那么我们可以简单地使用解构赋值而不是编写新的包装函数提取有趣的数据项。