"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi la console JavaScript de Chrome montre-t-elle des résultats inattendus lors de l'évaluation des objets?

Pourquoi la console JavaScript de Chrome montre-t-elle des résultats inattendus lors de l'évaluation des objets?

Publié le 2025-04-29
Parcourir:115

Why Does Chrome's JavaScript Console Show Unexpected Results When Evaluating Objects?

Comportement de la console JavaScript de Chrome: évaluation des objets paresseusement

Le comportement de la console JavaScript chromée lors de l'évaluation des objets a été observé comme potentiellement inattendu. Pour illustrer cela, considérez le code suivant:

var s = ["hi"];
console.log(s);
s[0] = "bye";
console.log(s);

dans Firefox, les sorties de la console:

[ "hi" ]
[ "bye" ]

Cependant, dans Chrome version 7.0.517.41 Beta, la sortie est:

[ "bye" ]
[ "bye" ]

Comportement d'évaluation inattendu

Ce comportement suggère que la console de Chrome peut être "paresseuse" lors de l'évaluation des objets. Lorsque l'instruction Console.log Console.log est exécutée, la console fait référence à l'objet en mémoire. Toutes les modifications ultérieures de l'objet, telles que la modification du premier élément de "Hi" à "Bye", ne se reflètent pas dans la sortie de l'instruction First Console.log. Cela implique que la console évalue uniquement l'objet au moment de l'instruction First Console.log et stocke l'instantané. fixé). Le bogue indique que la console de Chrome n'effectue pas d'évaluation paresseuse pour les objets accessibles directement, entraînant le comportement observé.

solution de contournement

pour éviter ce comportement inattendu, on peut appeler ToString sur l'objet avant de le passer à Console.log. Cela oblige Chrome à créer une représentation de l'objet qui n'est pas modifié par les changements ultérieurs, garantissant que la sortie de la console reflète l'état actuel de l'objet.

var s = ["hi"]; console.log (s.toString ()); s [0] = "bye"; console.log (s.toString ()); output:

salut au revoir

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3