Jadual Kandungan
目录
1.需要对象分解
2.提取属性
3.提取多个属性
4.默认值
5.别名
6.从嵌套对象中提取属性
7.提取动态名称属性
8.销毁后的物体
9.常见用例
9.1将属性绑定到变量
9.2功能参数解构
10.总结
Rumah hujung hadapan web tutorial js 大神总结如何在JavaScript中使用对象解构

大神总结如何在JavaScript中使用对象解构

Dec 02, 2020 pm 04:58 PM
javascript

JavaScript栏目介绍如何使用对象解构

大神总结如何在JavaScript中使用对象解构

相关免费学习推荐:javascript(视频)

对象解构是一种有用的JavaScript功能,可以从对象中提取属性并将其绑定到变量。

更好的是,对象解构可以在一个语句中提取多个属性,可以从嵌套对象访问属性,并且可以设置默认值(如果该属性不存在)。

在这篇文章中,我将解释如何在JavaScript中使用对象分解。

目录

1.需要对象分解
2.提取属性
3.提取多个属性
4.默认值
5.别名
6.从嵌套对象中提取属性
7.提取动态名称属性
8.销毁后的物体
9.常见用例
10.总结

1.需要对象分解

假设您要提取对象的某些属性。在ES2015之前的环境中,您需要编写以下代码:

var hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

var name     = hero.name;var realName = hero.realName;
name;     // => 'Batman',
realName; // => 'Bruce Wayne'
Salin selepas log masuk

属性hero.name值已分配给变量name。将相同的hero.realName值分配给realName

这种访问属性并将其分配给变量的方法需要样板代码。通过编写var name = hero.name,您必须提及name两次绑定,对于相同realName

这就是对象解构语法有用的地方:您可以读取属性并将其值分配给变量,而无需重复属性名称。不仅如此,您还可以在一个语句中读取同一对象的多个属性!

让我们重构上面的脚本,并应用对象分解来访问属性namerealName

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { name, realName } = hero;
name;     // => 'Batman',
realName; // => 'Bruce Wayne'
Salin selepas log masuk
Salin selepas log masuk

const { name, realName } = hero是对象销毁分配。这个语句定义变量namerealName,然后分配给他们的属性值hero.namehero.realNamecorrespondigly。

比较两种访问对象属性的方法:

const name     = hero.name;
const realName = hero.realName;

// is equivalent to:

const { name, realName } = hero;
Salin selepas log masuk

可以看到,由于属性名称和对象变量都没有重复,因此对象的分解更加方便。

2.提取属性

对象解构的基本语法非常简单:

const { identifier } = expression;
Salin selepas log masuk

哪里identifier是要访问的属性名称,expression应评估为一个对象。销毁后,变量identifier包含属性值。

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

const identifier = expression.identifier;
Salin selepas log masuk

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

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { name } = hero;
name; // => 'Batman'
Salin selepas log masuk

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

3.提取多个属性

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

const { identifier1, identifier2, ..., identifierN } = expression;
Salin selepas log masuk

其中identifier1,…identifierN是要访问的属性的名称,expression应评估为对象。销毁后,变量identifier1identifierN包含相应的属性值。

这是等效的代码:

const identifier1 = expression.identifier1;
const identifier2 = expression.identifier2;
// ...
const identifierN = expression.identifierN;
Salin selepas log masuk

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

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { name, realName } = hero;
name;     // => 'Batman',
realName; // => 'Bruce Wayne'
Salin selepas log masuk
Salin selepas log masuk

const { name, realName } = hero创建2个变量namerealName分配相应属性hero.name和的值hero.realName

4.默认值

如果已解构的对象不具有在解构分配中指定的属性,则将变量分配给undefined。让我们看看它是如何发生的:

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { enemies } = hero;
enemies;     // => undefined
Salin selepas log masuk

解构后的变量enemiesundefined因为该属性enemies在对象中不存在hero

幸运的是,如果该属性在解构对象中不存在,则可以设置默认值。基本语法如下:

const { identifier = defaultValue } = expression;
Salin selepas log masuk

哪里identifier是要访问的属性名称,expression应评估为一个对象。销毁后,变量identifier包含属性值,或者defaultValue如果identifier属性不存在则分配给变量。

这是等效的代码:

const identifier = expression.identifier === undefined ? 
        defaultValue : expression.identifier;
Salin selepas log masuk

让我们更改先前的代码示例,并使用默认值功能:

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { enemies = ['Joker'] } = hero;
enemies;     // => ['Joker']
Salin selepas log masuk

现在,undefined该变量enemies默认为,而不是['Joker']

5.别名

如果要创建名称与属性不同的变量,则可以使用对象分解的别名功能。

const { identifier: aliasIdentifier } = expression;
Salin selepas log masuk

identifier是要访问的属性的名称,aliasIdentifier是变量的名称,expression应评估为对象。销毁后,变量aliasIdentifier包含属性值。

等效代码:

const aliasIdentifier = expression.identifier;
Salin selepas log masuk

这是一个对象分解别名功能的示例:

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { realName: secretName } = hero;
secretName; // => 'Bruce Wayne'
Salin selepas log masuk

看一下const { realName: secretName } = hero,解构定义了一个新变量secretName(别名变量),并为其分配了值hero.realName

6.从嵌套对象中提取属性

在前面的示例中,对象很简单:属性具有原始数据类型(例如字符串)。

通常,对象可以嵌套在其他对象中。换句话说,某些属性可以包含对象。

在这种情况下,您仍然可以从深处使用对象分解和访问属性。基本语法如下:

const { nestedObjectProp: { identifier } } = expression;
Salin selepas log masuk

nestedObjectProp是保存嵌套对象的属性的名称。identifier是要从嵌套对象访问的属性名称。expression应该评估变形后的对象。

销毁后,变量identifier包含嵌套对象的属性值。

上面的语法等效于:

const identifier = expression.nestedObjectProp.identifier;
Salin selepas log masuk

您可以从中提取属性的嵌套级别不受限制。如果要从深处提取属性,只需添加更多嵌套的花括号:

const { propA: { propB: { propC: { .... } } } } = object;
Salin selepas log masuk

例如,对象hero包含一个嵌套对象{ city: 'Gotham'}

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne',
  address: {
    city: 'Gotham'
  }
};

// Object destructuring:
const { address: { city } } = hero;
city; // => 'Gotham'
Salin selepas log masuk

通过对象解构,const { address: { city } } = hero您可以city从嵌套对象访问属性。

7.提取动态名称属性

您可以将具有动态名称的属性提取到变量中(属性名称在运行时是已知的):

const { [propName]: identifier } = expression;
Salin selepas log masuk

propNameexpression应该计算为属性名称(通常是字符串),并且identifier应该指示在解构之后创建的变量名称。第二个expression应该评估要分解的对象。

没有对象分解的等效代码:

const identifier = expression[propName];
Salin selepas log masuk

让我们看一个prop包含属性名称的示例:

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const prop = 'name';
const { [prop]: name } = hero;
name; // => 'Batman'
Salin selepas log masuk

const { [prop]: name } = hero是一个对象分解,将变量赋给namevalue hero[prop],其中prop是一个保存属性名称的变量。

8.销毁后的物体

rest语法对于在解构之后收集其余属性很有用:

const { identifier, ...rest } = expression;
Salin selepas log masuk

哪里identifier是要访问的属性名称,expression应评估为一个对象。

销毁后,变量identifier包含属性值。rest变量是具有其余属性的普通对象。

例如,让我们提取属性name,但保留其余属性:

const hero = {
  name: 'Batman',
  realName: 'Bruce Wayne'
};

const { name, ...realHero } = hero;
realHero; // => { realName: 'Bruce Wayne' }
Salin selepas log masuk

破坏const { name, ...realHero } = hero提取财产name

同时,剩余的属性(realName在这种情况下)被收集到变量realHero:中{ realName: 'Bruce Wayne' }

9.常见用例

9.1将属性绑定到变量

如之前的许多示例所示,对象解构将属性值绑定到变量。

对象解构可以给变量赋值使用声明constletvar。甚至分配给一个已经存在的变量。

例如,以下是使用let语句解构的方法:

// let
const hero = {
  name: 'Batman',
};

let { name } = hero;
name; // => 'Batman'
Salin selepas log masuk

如何使用var语句来破坏结构:

// var
const hero = {
  name: 'Batman',
};

var { name } = hero;
name; // => 'Batman'
Salin selepas log masuk

以及如何解构为已声明的变量:

// existing variable
let name;

const hero = {
  name: 'Batman',
};

({ name } = hero);
name; // => 'Batman'
Salin selepas log masuk

我发现将for..of循环与对象解构相结合以立即提取属性是令人满意的:

const heroes = [
  { name: 'Batman' },
  { name: 'Joker' }
];

for (const { name } of heroes) {  console.log(name); // logs 'Batman', 'Joker'
}
Salin selepas log masuk

9.2功能参数解构

通常,对象分解可以放置在发生分配的任何位置。

例如,您可以在函数的参数列表内破坏对象:

const heroes = [
  { name: 'Batman' },
  { name: 'Joker' }
];

const names = heroes.map(
  function({ name }) {    return name;
  }
);

names; // => ['Batman', 'Joker']
Salin selepas log masuk

function({ name })解构函数参数,创建一个name保存name属性值的变量。

10.总结

对象解构是一项强大的功能,可让您从对象中提取属性并将这些值绑定到变量。

我特别喜欢对象分解的简洁语法和在一条语句中提取多个变量的能力。

希望我的帖子对您了解对象分解的有用!

Atas ialah kandungan terperinci 大神总结如何在JavaScript中使用对象解构. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Bagaimana untuk menggunakan insertBefore dalam javascript Bagaimana untuk menggunakan insertBefore dalam javascript Nov 24, 2023 am 11:56 AM

Penggunaan: Dalam JavaScript, kaedah insertBefore() digunakan untuk memasukkan nod baharu dalam pepohon DOM. Kaedah ini memerlukan dua parameter: nod baharu untuk dimasukkan dan nod rujukan (iaitu nod di mana nod baharu akan dimasukkan).

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

See all articles