const { identifier: aliasIdentifier } = expression;



Le maître résume comment utiliser la déstructuration d'objets en JavaScript
La colonne
JavaScript présente comment utiliser la déstructuration d'objets
Recommandations d'apprentissage gratuites associées : javascript(Vidéo)
La déstructuration d'objets est une fonctionnalité JavaScript utile qui extrait les propriétés d'un objet et les lie à des variables.
Mieux encore, la déstructuration d'objets peut extraire plusieurs propriétés dans une seule instruction, les propriétés sont accessibles à partir d'objets imbriqués et une valeur par défaut peut être définie si la propriété n'existe pas.
Dans cet article, j'expliquerai comment utiliser la décomposition d'objets en JavaScript.
Répertoire
1. Décomposition d'objet requise
2. Extraire les attributs
3. Extraire plusieurs attributs
4. . Extraire les attributs des objets imbriqués
7. Extraire les attributs de nom dynamique
8. Objets détruits
9. Cas d'utilisation courants
10. Résumé
1. Objet requis Décomposition
Supposons que vous souhaitiez extraire certaines propriétés d'un objet. Dans un environnement pré-ES2015, vous écririez le code suivant :
var hero = { name: 'Batman', realName: 'Bruce Wayne' }; var name = hero.name;var realName = hero.realName; name; // => 'Batman', realName; // => 'Bruce Wayne'
Propriété
valeur affectée à la variable. Attribuez la même valeur hero.name
à name
. hero.realName
realName
Cette méthode pour accéder à une propriété et l'attribuer à une variable nécessite un code passe-partout. En écrivant
liaison, pour le même var name = hero.name
. name
realName
C'est là que la syntaxe de déstructuration d'objets est utile : vous pouvez lire une propriété et attribuer sa valeur à une variable sans répéter le nom de la propriété. De plus, vous pouvez lire plusieurs propriétés du même objet dans une seule instruction !
Refactorisons le script ci-dessus et appliquons la décomposition d'objet pour accéder aux propriétés
et : name
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { name, realName } = hero; name; // => 'Batman', realName; // => 'Bruce Wayne'
realName
est une allocation de destruction d'objet. Cette instruction définit les variables et const { name, realName } = hero
puis attribue leurs valeurs d'attribut name
et realName
en conséquence. hero.name
hero.realName
Comparez les deux méthodes d'accès aux propriétés de l'objet :
const name = hero.name; const realName = hero.realName; // is equivalent to: const { name, realName } = hero;
Comme vous pouvez le voir, puisque les noms de propriété et les variables de l'objet ne sont pas répétés, la décomposition de l'objet est plus pratique.
2. Extraire les propriétés
La syntaxe de base pour la déstructuration d'objets est très simple :
const { identifier } = expression;
où
est le nom de la propriété à laquelle accéder, et devrait être évalué comme un objet. Après destruction, la variable identifier
contient la valeur de l'attribut. expression
identifier
Voici le code équivalent utilisant les accesseurs de propriété :
const identifier = expression.identifier;
Essayons la décomposition d'objets en pratique :
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { name } = hero; name; // => 'Batman'
Cette instruction
définit une variable , et initialise avec la valeur de la const { name } = hero
propriété. name
hero.name
3. Extraire plusieurs propriétés
Pour diviser un objet en plusieurs propriétés, énumérez un nombre quelconque de propriétés et
ajoutez des virgules entre les deux :const { identifier1, identifier2, ..., identifierN } = expression;
,
où , ... sont les noms des propriétés auxquelles il faut accéder et identifier1
doit être évalué comme un objet. Après destruction, les variables identifierN
…expression
contiennent les valeurs d'attribut correspondantes. identifier1
identifierN
Voici le code équivalent :
const identifier1 = expression.identifier1; const identifier2 = expression.identifier2; // ... const identifierN = expression.identifierN;
Regardons à nouveau l'exemple de la première partie, où 2 propriétés sont extraites :
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { name, realName } = hero; name; // => 'Batman', realName; // => 'Bruce Wayne'
et const { name, realName } = hero
se voient attribuer les attributs name
et valeurs realName
correspondants. hero.name
hero.realName
4. Valeur par défaut
Si l'objet déstructuré n'a pas les propriétés spécifiées dans l'affectation de déstructuration, la variable est affectée à
. Voyons comment ça se passe :const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { enemies } = hero; enemies; // => undefined
undefined
La variable déstructurée est car la propriété enemies
n'existe pas undefined
dans l'objet. enemies
hero
Heureusement, il est possible de définir une valeur par défaut si la propriété n'existe pas dans l'objet déstructuré. La syntaxe de base est la suivante :
const { identifier = defaultValue } = expression;
où
est le nom de la propriété à laquelle accéder et doit être évalué comme un objet. Après destruction, la variable identifier
contient la valeur de l'attribut, ou expression
est affecté à la variable si l'attribut identifier
n'existe pas. defaultValue
identifier
Voici le code équivalent :
const identifier = expression.identifier === undefined ? defaultValue : expression.identifier;
Changeons l'exemple de code précédent et utilisons la fonction de valeur par défaut :
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { enemies = ['Joker'] } = hero; enemies; // => ['Joker']
Maintenant,
la variable au lieu de. undefined
enemies
5. Alias['Joker']
const { identifier: aliasIdentifier } = expression;
Copier après la connexion
const { identifier: aliasIdentifier } = expression;
est le nom de la propriété à laquelle accéder,
est le nom de la variable et doit être évalué comme un objet. Après destruction, la variable identifier
contient la valeur de l'attribut. aliasIdentifier
expression
Code équivalent : aliasIdentifier
const aliasIdentifier = expression.identifier;
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { realName: secretName } = hero; secretName; // => 'Bruce Wayne'
看一下const { realName: secretName } = hero
,解构定义了一个新变量secretName
(别名变量),并为其分配了值hero.realName
。
6.从嵌套对象中提取属性
在前面的示例中,对象很简单:属性具有原始数据类型(例如字符串)。
通常,对象可以嵌套在其他对象中。换句话说,某些属性可以包含对象。
在这种情况下,您仍然可以从深处使用对象分解和访问属性。基本语法如下:
const { nestedObjectProp: { identifier } } = expression;
nestedObjectProp
是保存嵌套对象的属性的名称。identifier
是要从嵌套对象访问的属性名称。expression
应该评估变形后的对象。
销毁后,变量identifier
包含嵌套对象的属性值。
上面的语法等效于:
const identifier = expression.nestedObjectProp.identifier;
您可以从中提取属性的嵌套级别不受限制。如果要从深处提取属性,只需添加更多嵌套的花括号:
const { propA: { propB: { propC: { .... } } } } = object;
例如,对象hero
包含一个嵌套对象{ city: 'Gotham'}
。
const hero = { name: 'Batman', realName: 'Bruce Wayne', address: { city: 'Gotham' } }; // Object destructuring: const { address: { city } } = hero; city; // => 'Gotham'
通过对象解构,const { address: { city } } = hero
您可以city
从嵌套对象访问属性。
7.提取动态名称属性
您可以将具有动态名称的属性提取到变量中(属性名称在运行时是已知的):
const { [propName]: identifier } = expression;
propName
expression应该计算为属性名称(通常是字符串),并且identifier
应该指示在解构之后创建的变量名称。第二个expression
应该评估要分解的对象。
没有对象分解的等效代码:
const identifier = expression[propName];
让我们看一个prop
包含属性名称的示例:
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const prop = 'name'; const { [prop]: name } = hero; name; // => 'Batman'
const { [prop]: name } = hero
是一个对象分解,将变量赋给name
value hero[prop]
,其中prop
是一个保存属性名称的变量。
8.销毁后的物体
rest语法对于在解构之后收集其余属性很有用:
const { identifier, ...rest } = expression;
哪里identifier
是要访问的属性名称,expression
应评估为一个对象。
销毁后,变量identifier
包含属性值。rest
变量是具有其余属性的普通对象。
例如,让我们提取属性name
,但保留其余属性:
const hero = { name: 'Batman', realName: 'Bruce Wayne' }; const { name, ...realHero } = hero; realHero; // => { realName: 'Bruce Wayne' }
破坏const { name, ...realHero } = hero
提取财产name
。
同时,剩余的属性(realName
在这种情况下)被收集到变量realHero
:中{ realName: 'Bruce Wayne' }
。
9.常见用例
9.1将属性绑定到变量
如之前的许多示例所示,对象解构将属性值绑定到变量。
对象解构可以给变量赋值使用声明const
,let
和var
。甚至分配给一个已经存在的变量。
例如,以下是使用let
语句解构的方法:
// let const hero = { name: 'Batman', }; let { name } = hero; name; // => 'Batman'
如何使用var
语句来破坏结构:
// var const hero = { name: 'Batman', }; var { name } = hero; name; // => 'Batman'
以及如何解构为已声明的变量:
// existing variable let name; const hero = { name: 'Batman', }; ({ name } = hero); name; // => 'Batman'
我发现将for..of
循环与对象解构相结合以立即提取属性是令人满意的:
const heroes = [ { name: 'Batman' }, { name: 'Joker' } ]; for (const { name } of heroes) { console.log(name); // logs 'Batman', 'Joker' }
9.2功能参数解构
通常,对象分解可以放置在发生分配的任何位置。
例如,您可以在函数的参数列表内破坏对象:
const heroes = [ { name: 'Batman' }, { name: 'Joker' } ]; const names = heroes.map( function({ name }) { return name; } ); names; // => ['Batman', 'Joker']
function({ name })
解构函数参数,创建一个name
保存name
属性值的变量。
10.总结
对象解构是一项强大的功能,可让您从对象中提取属性并将这些值绑定到变量。
我特别喜欢对象分解的简洁语法和在一条语句中提取多个变量的能力。
希望我的帖子对您了解对象分解的有用!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

JavaScript est un langage de programmation largement utilisé dans le développement Web, tandis que WebSocket est un protocole réseau utilisé pour la communication en temps réel. En combinant les puissantes fonctions des deux, nous pouvons créer un système efficace de traitement d’images en temps réel. Cet article présentera comment implémenter ce système à l'aide de JavaScript et WebSocket, et fournira des exemples de code spécifiques. Tout d’abord, nous devons clarifier les exigences et les objectifs du système de traitement d’images en temps réel. Supposons que nous disposions d'un appareil photo capable de collecter des données d'image en temps réel.
