Maison > interface Web > js tutoriel > Pourquoi la console JavaScript de Chrome affiche-t-elle les valeurs d'objet modifiées au lieu des valeurs d'origine ?

Pourquoi la console JavaScript de Chrome affiche-t-elle les valeurs d'objet modifiées au lieu des valeurs d'origine ?

Susan Sarandon
Libérer: 2024-12-24 03:20:18
original
305 Les gens l'ont consulté

Why Does Chrome's JavaScript Console Show Modified Object Values Instead of Original Values?

Comportement d'évaluation de la console JavaScript de Chrome pour les objets

Question :

Dans un extrait de code JavaScript, un tableau est défini et imprimé sur la console. Après avoir modifié l'élément du tableau, celui-ci est à nouveau imprimé. La console de Firefox affiche les deux valeurs correctes, mais la console de Chrome évalue paresseusement l'objet et imprime la valeur modifiée pour les deux instances.

Y a-t-il une erreur dans le code ou s'agit-il d'un comportement de la console Chrome ?

Réponse :

Comme indiqué dans un rapport de bug de WebKit (maintenant corrigé), il existe un problème concernant l'évaluation de Chrome. d'objets dans la console.

Explications et évitements :

Ce comportement découle de la nature d'évaluation paresseuse de la console Chrome pour les objets. Il les évalue uniquement lorsqu'ils sont affichés sur la console, conduisant à une sortie incorrecte si l'objet est modifié avant l'affichage.

Pour éviter ce problème, on peut appeler .toString() sur l'objet, ce qui crée un représentation qui ne sera pas modifiée par les modifications ultérieures du code. L'appel de .toString() avant l'impression sur la console garantit que les valeurs correctes sont affichées.

Code modifié :

var s = ["hi"];
console.log(s.toString()); // Prints "hi"
s[0] = "bye";
console.log(s.toString()); // Prints "bye"
Copier après la connexion

En utilisant cette approche modifiée, la sortie de la console dans Chrome sera identique à celui de Firefox, affichant les deux valeurs correctes pour le tableau.

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