Maison > interface Web > js tutoriel > Pourquoi `console.log()` semble-t-il afficher les valeurs de tableau modifiées avant la modification en JavaScript ?

Pourquoi `console.log()` semble-t-il afficher les valeurs de tableau modifiées avant la modification en JavaScript ?

Susan Sarandon
Libérer: 2025-01-05 07:09:39
original
738 Les gens l'ont consulté

Why Does `console.log()` Seem to Show Altered Array Values Before Modification in JavaScript?

La console produit une valeur de tableau modifiée avant la modification

En JavaScript, les variables sont généralement transmises par référence, ce qui signifie que les modifications apportées à la variable après celle-ci a été affecté à une autre variable sera reflété dans les deux variables. Ce comportement est souvent observé lorsque console.log() est utilisé pour afficher la valeur d'une variable.

Par exemple, considérons le code suivant :

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

Dans cet exemple, la variable C se voit attribuer une référence au tableau stocké dans la variable A. Lorsque console.log(C) est exécuté, il affiche la valeur actuelle du tableau, qui est [1, 2]. Cependant, cette valeur peut ne pas être à jour si le tableau A d'origine est modifié ultérieurement.

A.sort();
console.log(C); // [1, 2]
Copier après la connexion

Lors de l'exécution de la méthode sort() sur le tableau A, ses éléments sont triés sur place. Puisque le tableau C contient une référence au même objet, la sortie de console.log(C) reste [1, 2]. En effet, console.log() affiche la valeur actuelle de l'objet au moment de l'exécution, et non une valeur statique.

Pour éviter ce comportement inattendu et garantir que console.log() génère des valeurs précises, vous peut soit utiliser :

console.log(JSON.parse(JSON.stringify(C)));
Copier après la connexion

Ou, comme le suggère MDN :

Object.assign({}, A)
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal