console.log() affiche la valeur d'une variable avant qu'elle ne change réellement
P粉356361722
P粉356361722 2023-08-22 17:35:57
0
2
371
<p>Je comprends ce code. Faisons une copie de A et appelons-le C. Quand A change, C reste le même. </p> <pre class="brush:php;toolbar:false;">var A = 1; varC = A ; console.log(C); // 1 A++ ; console.log(C); // 1</pre> <p>Mais lorsque A est un tableau, la situation est différente. Non seulement C change, mais il change avant même que nous touchions A. </p> <pre class="brush:php;toolbar:false;">var A = [2, 1]; varC = A ; console.log(C); // [2, 1] Un tri(); console.log(C); // [1, 2]</pre> <p>Quelqu'un peut-il expliquer ce qui se passe dans le deuxième exemple ? </p>
P粉356361722
P粉356361722

répondre à tous(2)
P粉578680675

console.log()Reçoit une référence à l'objet, donc lorsque l'objet change, la valeur dans la console changera également. Pour éviter cela, vous pouvez utiliser les méthodes suivantes :

console.log(JSON.parse(JSON.stringify(c)))

AVERTISSEMENT MDN :

P粉949848849

La réponse de Pointy fournit de bonnes informations, mais n'est pas la bonne réponse à la question.

Le comportement décrit par l'OP fait partie d'un bug qui a été signalé pour la première fois en mars 2010 et qui avait un correctif pour Webkit en août 2012, mais au moment d'écrire ces lignes, il n'était pas encore intégré à Google Chrome. Le comportement dépend si la fenêtre de débogage de la console est console.log() ouverte ou fermée lors du passage du littéral objet à .

Extrait du rapport de bug original (https://bugs.webkit.org/show_bug.cgi?id=35801) :

Réponse des développeurs Chromium :

De nombreuses plaintes ont suivi, ce qui a finalement conduit à une correction de bug.

Description du journal des modifications du patch implémenté en août 2012 (http://trac.webkit.org/changeset/125174) :

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!