导航
×
   ❮   
HTML CSS JavaScript PHP Go Sass W3C Colors ECMS

JS 教程

JS 简介 JS 如何使用 JS 输出 JS 语法 JS 语句 JS 注释 JS 变量 JS 运算符 JS 条件语句 JS 循环 JS 字符串 JS 数字 JS 函数 JS 对象 JS 日期 JS 数组 JS 类型化数组 JS 集合 JS Map 映射 JS Math JS 正则表达式 JS 数据类型 JS 错误 JS 事件 JS 编程 JS 关键字参考 JS 保留关键字参考 JS 运算符参考 JS 运算符优先级 JS UTF-8 字符 JS UTF-8 符号 JS UTF-8 表情符号 JS 版本

JS 高级教程

JS 对象 JS 函数 JS 类 JS 迭代 JS Promises JS 模块

JavaScript Destructuring 解构赋值


解构赋值语法

解构赋值语法将对象属性解包到变量中:

let {firstName, lastName} = person;

它还可以解包数组和任何其他可迭代对象:

let [firstName, lastName] = person;

对象解构

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// 解构
let {firstName, lastName} = person;
亲自试一试 »

属性的顺序无关紧要:

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// 解构
let {lastName, firstName} = person;
亲自试一试 »

注意:

解构并非破坏性操作。

解构不会改变原始对象。


对象默认值

对于可能缺失的属性,我们可以设置默认值:

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// 解构
let {firstName, lastName, country = "US"} = person;
亲自试一试 »

对象属性别名

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// 解构
let {lastName : name} = person;
亲自试一试 »

字符串解构

解构的一个用途是解包字符串字符。

示例

// 创建一个字符串
let name = "W3Schools";

// 解构
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;
亲自试一试 »

Rest 属性

您可以使用 Rest 属性结束解构语法。

此语法会将所有剩余值存储到一个新数组中:

示例

// 创建一个数组
const numbers = [10, 20, 30, 40, 50, 60, 70];

// 解构
const [a,b, ...rest] = numbers
亲自试一试 »

解构映射

示例

// 创建映射
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

// 解构
let text = "";
for (const [key, value] of fruits) {
  text += key + " is " + value;
}
亲自试一试 »

交换 JavaScript 变量

您可以使用解构赋值来交换两个变量的值:

示例

let firstName = "John";
let lastName = "Doe";

// 解构
[firstName, lastName] = [lastName, firstName];
亲自试一试 »

浏览器支持

解构ES6 特性

自 2017 年 6 月起,所有现代浏览器均已完全支持 ES6。

Chrome
51
Edge
15
Firefox
54
Safari
10
Opera
38
2016年5月 2017年4月 2017年6月 2016年9月 2016年6月

Copyright ©2020-2026 freew3c.com All Rights Reserved 提供的内容仅用于学习和测试,不保证内容的正确性。