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
337

Je comprends ce code. Faisons une copie de A et appelons-le C. Quand A change, C reste le même.

var A = 1; varC = A ; console.log(C); // 1 A++ ; console.log(C); // 1

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.

var A = [2, 1]; varC = A ; console.log(C); // [2, 1] Un tri(); console.log(C); // [1, 2]

Quelqu'un peut-il expliquer ce qui se passe dans le deuxième exemple ?

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 Pointyfournit 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 estconsole.log()ouverteouferméelors 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!