Table des matières
Concepts
Déstructuration de tableaux
Déclaration d'affectation séparée
Déconstruisez la valeur par défaut
交换变量值
解构函数返回的数组
忽略返回值(或跳过某一项)
赋值数组剩余值给一个变量
嵌套数组解构
字符串解构
对象解构
基础对象解构
赋值给新变量名
解构默认值
赋值给新对象名的同时提供默认值
同时使用数组和对象解构
不完全解构
赋值剩余值给一个对象
嵌套对象解构(可忽略解构)
注意事项
小心使用已声明变量进行解构
La fonction de déstructuration renvoie Le tableau
提取JSON数据
Maison interface Web js tutoriel Vous faire comprendre l'affectation de déstructuration JavaScript

Vous faire comprendre l'affectation de déstructuration JavaScript

Mar 17, 2022 pm 05:36 PM
javascript

Cet article vous apporte des connaissances pertinentes sur javascript, qui présente principalement des problèmes liés à l'affectation de déstructuration, y compris la déstructuration des tableaux, la structure des objets et l'utilisation de la déstructuration, etc.

Vous faire comprendre l'affectation de déstructuration JavaScript

Recommandations associées : Tutoriel d'apprentissage Javascript

Concepts

ES6 fournit un mode d'affectation plus concis pour extraire les valeurs des tableaux et des objets, appelé déstructuration

Exemple :

[a, b] = [50, 100];
console.log(a);
// expected output: 50
console.log(b);
// expected output: 100

[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest);
// expected output: [30, 40, 50]
Copier après la connexion

Déstructuration de tableaux

La déstructuration d'un tableau est très simple et concise. Utilisez un littéral de tableau sur le côté gauche de l'expression d'affectation. Chaque nom de variable dans le littéral de tableau est mappé au même élément d'index du tableau déstructuré

Qu'est-ce que cela signifie ? comme suit Tout comme cet exemple, les éléments du tableau de gauche obtiennent respectivement les valeurs des index correspondants du tableau déstructuré de droite

let [a, b, c] = [1, 2, 3];
// a = 1
// b = 2
// c = 3
Copier après la connexion

Déclaration d'affectation séparée

Vous pouvez déstructurer et attribuer des valeurs ​​séparément via la déclaration de variable

Exemple : Déclarez les variables et attribuez des valeurs séparément

// 声明变量
let a, b;
// 然后分别赋值
[a, b] = [1, 2];
console.log(a); // 1
console.log(b); // 2
Copier après la connexion

Déconstruisez la valeur par défaut

Si la valeur déconstruite est non définie, vous pouvez définir la valeur par défaut : undefined,可以设置默认值:

let a, b;
// 设置默认值
[a = 5, b = 7] = [1];
console.log(a); // 1
console.log(b); // 7
Copier après la connexion

在上面的例子中,我们给a和b均设置了默认值
这种情况下,如果a或b的值是undefined,它将把设置的默认值赋给相应变量(5赋给a,7赋给b)

交换变量值

以往我们进行两个变量的交换,都是使用

//交换abc = a;a = b;b = c;
Copier après la connexion

或者异或的方法

然而在解构赋值中,我们可以在一个解构表达式中交换两个变量值

let a = 1;let b = 3;//交换a和b的值[a, b] = [b, a];console.log(a); // 3console.log(b); // 1
Copier après la connexion

解构函数返回的数组

我们可以直接解构一个返回值为数组的函数

function c() {
  return [10, 20];}let a, b;[a, b] = c();console.log(a); // 10console.log(b); // 20
Copier après la connexion

在上面的例子中,**c()**的返回值[10,20]可以在单独的同一行代码中使用解构

忽略返回值(或跳过某一项)

你可以有选择性的跳过一些不想得到的返回值

function c() {
  return [1, 2, 3];}let [a, , b] = c();console.log(a); // 1console.log(b); // 3
Copier après la connexion

赋值数组剩余值给一个变量

当你使用数组解构时,你可以把赋值数组剩余的部分全部赋给一个变量

let [a, ...b] = [1, 2, 3];console.log(a); // 1console.log(b); // [2, 3]
Copier après la connexion

这样的话b也会变成一个数组了,数组中的项是剩余的所有项

注意:
这里要小心结尾是不能再写逗号的,如果多了一个逗号将会报错

let [a, ...b,] = [1, 2, 3];// SyntaxError: rest element may not have a trailing comma
Copier après la connexion

嵌套数组解构

像对象一样,数组也可以进行嵌套解构

示例:

const color = ['#FF00FF', [255, 0, 255], 'rgb(255, 0, 255)'];
// Use nested destructuring to assign red, green and blue
// 使用嵌套解构赋值 red, green, blue
const [hex, [red, green, blue]] = color;
console.log(hex, red, green, blue); // #FF00FF 255 0 255
Copier après la connexion

字符串解构

在数组解构中,解构的目标若为可遍历对象,皆可进行解构赋值,可遍历对象即实现Iterator接口的数据

let [a, b, c, d, e] = 'hello';/*
a = 'h'
b = 'e'
c = 'l'
d = 'l'
e = 'o'
*/
Copier après la connexion

对象解构

基础对象解构

let x = { y: 22, z: true };
let { y, z } = x; // let {y:y,z:z} = x;的简写

console.log(y); // 22
console.log(z); // true
Copier après la connexion

赋值给新变量名

当使用对象解构时可以改变变量的名称

let o = { p: 22, q: true };
let { p: foo, q: bar } = o;

console.log(foo); // 22
console.log(bar); // true
Copier après la connexion

如上代码var {p: foo} = o 获取对象 o 的属性名 p,然后赋值给一个名称为 foo 的变量

解构默认值

如果解构取出的对象值是undefined,我们可以设置默认值

let { a = 10, b = 5 } = { a: 3 };

console.log(a); // 3
console.log(b); // 5
Copier après la connexion

赋值给新对象名的同时提供默认值

前面提到过我们赋值给新的对象名,这里我们可以给这个新的对象名提供一个默认值,如果没有解构它,就会自动使用默认值

let { a: aa = 10, b: bb = 5 } = { a: 3 };

console.log(aa); // 3
console.log(bb); // 5
Copier après la connexion

同时使用数组和对象解构

在结构中数组和对象可以一起使用

const props = [
  { id: 1, name: 'Fizz' },
  { id: 2, name: 'Buzz' },
  { id: 3, name: 'FizzBuzz' },
];

const [, , { name }] = props;
console.log(name); // "FizzBuzz"
Copier après la connexion

不完全解构

let obj = {p: [{y: 'world'}] };
let {p: [{ y }, x ] } = obj;//不解构x

// x = undefined
// y = 'world'
Copier après la connexion

赋值剩余值给一个对象

let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {c: 30, d: 40}
Copier après la connexion

嵌套对象解构(可忽略解构)

let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, { y }] } = obj;
// x = 'hello'
// y = 'world'
let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, {  }] } = obj;//忽略y
// x = 'hello'
Copier après la connexion

注意事项

小心使用已声明变量进行解构

错误示范:

let x;{x} = {x: 1};
Copier après la connexion

JavaScript引擎会将{x}

let x;({x} = {x: 1});
Copier après la connexion

Dans l'exemple ci-dessus, nous définissons des valeurs par défaut pour a et b De cette façon. Dans ce cas, si la valeur de a ou b est indéfini, il attribuera la valeur par défaut définie à la variable correspondante (5 est affecté à a, 7 est affecté à b)

Échanger les valeurs des variables

Dans le passé, lorsque nous échangeions deux variables, nous utilisions toujours
function add([x, y]) {
	return x + y;}add([1, 2]);
Copier après la connexion

ou

XOR

Cependant, en déstructuration. affectation, on peut échanger deux valeurs de variables​​dans une expression déstructurante

let x = 1;
let y = 2;
[x, y] = [y, x];
Copier après la connexion

La fonction de déstructuration renvoie Le tableau

On peut directement déstructurer une fonction dont la valeur de retour est un tableau

// 返回一个数组function example() {
  return [1, 2, 3];}let [a, b, c] = example();
  // 返回一个对象
  function example() {
  return {
    foo: 1,
    bar: 2
  };
  }let { foo, bar } = example();
Copier après la connexion
Copier après la connexion
Dans l'exemple ci-dessus, le la valeur de retour [10, 20] de **c()** peut être déstructurée dans une ligne de code distincte

Ignorez la valeur de retour (ou ignorez un élément)

Vous pouvez ignorer de manière sélective certaines valeurs de retour indésirables
let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]
Copier après la connexion
Copier après la connexion

Attribuez la valeur restante du tableau à une variable

🎜🎜Lorsque vous utilisez la déstructuration de tableau Lorsque vous ne pouvez plus écrire de virgules S'il y a une virgule supplémentaire, une erreur sera signalée🎜rrreee🎜🎜Déstructuration de tableau imbriqué🎜🎜. 🎜Comme les objets, les tableaux peuvent également être déconstruits imbriqués🎜🎜🎜Exemple : 🎜🎜rrreee🎜🎜Déstructuration de chaînes🎜 🎜🎜Dans la déstructuration de tableaux, si la cible de la déstructuration est un objet traversable, il peut être déstructuré et attribué. les données qui implémentent l'interface Iterator🎜rrreee🎜Déstructuration d'objet🎜🎜🎜Déstructuration d'objet de base🎜🎜rrreee🎜🎜Attribué au nouveau nom de variable🎜🎜🎜Vous pouvez changer le nom de la variable lors de l'utilisation de la déstructuration d'objet🎜rrreee🎜Le code ci-dessus < code>var {p: foo} = o obtient le nom d'attribut p de l'objet o, puis l'affecte à une valeur nommée foo La variable 🎜🎜🎜valeur par défaut de déstructuration🎜🎜🎜Si la valeur de l'objet est supprimée par la déstructuration est non définie, nous pouvons définir la valeur par défaut 🎜rrreee🎜🎜l'attribuer au nouvel nom d'objet et fournir la valeur par défaut 🎜🎜🎜avant Comme mentionné précédemment, nous attribuons une valeur à un nouveau nom d'objet . Ici, nous pouvons fournir une valeur par défaut pour ce nouveau nom d'objet s'il n'est pas déstructuré, la valeur par défaut sera automatiquement utilisée🎜rrreee🎜🎜Utilisez à la fois la déstructuration de tableau et d'objet🎜🎜🎜 dans Les tableaux et les objets dans les structures peuvent être utilisés ensemble. 🎜rrreee🎜🎜Déstructuration incomplète🎜🎜rrreee🎜Affectation de la valeur restante à un objet🎜rrreee🎜🎜Déstructuration d'objets imbriqués (la déstructuration peut être ignorée)🎜🎜rrreee🎜Notes🎜🎜🎜À utiliser avec précaution Déclarer les variables pour la déstructuration 🎜🎜🎜🎜Erreur exemple : 🎜🎜rrreee🎜Le moteur JavaScript interprétera {x} comme un bloc de code, ce qui entraînera une erreur de syntaxe. Il faut éviter d'écrire des accolades en début de ligne, pour éviter que JavaScript ne l'interprète. sous forme de bloc de code 🎜🎜Écriture correcte : 🎜🎜rrreee🎜Écriture correcte : mettez l'intégralité de l'instruction d'affectation de déstructuration entre parenthèses et vous pourrez l'exécuter correctement🎜🎜🎜Affectation de déstructuration des paramètres de fonction🎜🎜🎜Les paramètres de fonction peuvent également être attribués en utilisant destructuring🎜rrreee🎜Dans le code ci-dessus, le paramètre de la fonction add est un tableau en surface, mais lors du passage du paramètre, le paramètre du tableau est déstructuré en variables x et y. Pour l'intérieur de la fonction, c'est pareil. car Passer directement x et y est la même chose🎜🎜Le but de la déstructuration🎜🎜Il existe de nombreuses utilisations de l'affectation de déstructuration🎜🎜🎜Échanger les valeurs des variables🎜🎜rrreee🎜Le code ci-dessus échange les valeurs de x et y. Cette méthode d'écriture est non seulement concise mais aussi facile à lire, la sémantique est claire🎜🎜🎜Renvoyer plusieurs valeurs de la fonction🎜🎜🎜La fonction ne peut renvoyer qu'une seule valeur. Si nous voulons renvoyer plusieurs valeurs, nous. ne peut mettre ces valeurs​​dans un tableau ou un objet et les renvoyer que lorsque nous avons la mission de déstructuration, récupérer ces valeurs​​à partir d'un objet ou d'un tableau, c'est comme choisir quelque chose dans un sac 🎜.
// 返回一个数组function example() {
  return [1, 2, 3];}let [a, b, c] = example();
  // 返回一个对象
  function example() {
  return {
    foo: 1,
    bar: 2
  };
  }let { foo, bar } = example();
Copier après la connexion
Copier après la connexion

提取JSON数据

解构赋值对于提取JSON对象中的数据,尤其有用

示例:

let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]
Copier après la connexion
Copier après la connexion

使用上面的代码,我们就可以快速取出JSON数据中的值

相关推荐:javascript教程

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

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 mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

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

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

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 mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

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 : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

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

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

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 simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

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 et WebSocket : créer un système de traitement d'images en temps réel efficace JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace Dec 17, 2023 am 08:41 AM

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.

See all articles