手册
目录
解构赋值语法将对象属性解包到变量中:
let {firstName, lastName} = person;
它还可以解包数组和任何其他可迭代对象:
let [firstName, lastName] = person;
// 创建一个对象
const person = {
firstName: "Bill",
lastName: "Gates",
age: 50
};
// 解构
let {firstName, lastName} = person;
运行实例 »点击 "运行实例" 按钮查看在线实例
属性的顺序无关紧要:
// 创建一个对象
const person = {
firstName: "Bill",
lastName: "Gates",
age: 50
};
// 解构
let {lastName, firstName} = person;
运行实例 »点击 "运行实例" 按钮查看在线实例
解构不是破坏性的。
解构不会更改原始对象。
对于可能缺失的属性,我们可以设置默认值:
// 创建一个对象
const person = {
firstName: "Bill",
lastName: "Gates",
age: 50
};
// 解构
let {firstName, lastName, country = "US"} = person;
运行实例 »点击 "运行实例" 按钮查看在线实例
// 创建一个对象
const person = {
firstName: "Bill",
lastName: "Gates",
age: 50
};
// 解构
let {lastName: name} = person;
运行实例 »点击 "运行实例" 按钮查看在线实例
解构的一个用途是解包字符串字符。
// 创建一个字符串 let name = "W3School"; // 解构 let [a1, a2, a3, a4, a5] = name;运行实例 »
点击 "运行实例" 按钮查看在线实例
解构可以用于任何可迭代对象。
我们可以将数组变量提取到自己的变量中:
// 创建一个数组 const fruits = ["Bananas", "Oranges", "Apples", "Mangos"]; // 解构 let [fruit1, fruit2] = fruits;运行实例 »
点击 "运行实例" 按钮查看在线实例
我们可以使用两个或更多逗号来跳过数组值:
// 创建一个数组 const fruits = ["Bananas", "Oranges", "Apples", "Mangos"]; // 解构 let [fruit1,,,fruit2] = fruits;运行实例 »
点击 "运行实例" 按钮查看在线实例
我们可以从数组的特定索引位置提取值:
// 创建一个数组
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];
// 解构
let {[0]: fruit1, [1]: fruit2} = fruits;
运行实例 »点击 "运行实例" 按钮查看在线实例
可以在解构语法末尾使用剩余属性。
此语法会将所有剩余值存储到一个新数组中:
// 创建一个数组 const numbers = [10, 20, 30, 40, 50, 60, 70]; // 解构 const [a, b, ...rest] = numbers;运行实例 »
点击 "运行实例" 按钮查看在线实例
// 创建一个 Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
// 解构
let text = "";
for (const [key, value] of fruits) {
text += key + " is " + value;
}
运行实例 »点击 "运行实例" 按钮查看在线实例
可以使用解构赋值交换两个变量的值:
let firstName = "Bill"; let lastName = "Gates"; // 解构 [firstName, lastName] = [lastName, firstName];运行实例 »
点击 "运行实例" 按钮查看在线实例
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习