console.log() は、変数値が実際に変更される前に、変更された値を表示します。
P粉427877676
P粉427877676 2023-08-27 22:37:24
0
2
470

このコードは理解できました。 A をコピーして C と呼びます。 A が変化しても、C は変化しません。

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

しかし、A が配列の場合は状況が異なります。 C が変化するだけでなく、A

に触れる前にも変化します。
var A = [2, 1]; var C = A; console.log(C); // [1, 2] A.sort(); console.log(C); // [1, 2]; 

誰かが 2 番目の例で何が起こっているのか説明できますか?

P粉427877676
P粉427877676

全員に返信 (2)
P粉023326773

console.log()referenceをオブジェクトに渡すため、オブジェクトが変更されるとコンソール内の値も変更されます。これを回避するには:

リーリー

MDN 警告:

いいねを押す+0
    P粉795311321

    Pointy の回答は良い情報を提供しますが、この質問に対する正しい回答ではありません。

    OP で説明されている動作は、2010 年 3 月に最初に報告され、2012 年 8 月に Webkit 用にパッチが適用されたバグの一部でしたが、この記事の執筆時点ではまだ Google Chrome には統合されていません。動作は、オブジェクト リテラルをconsole.log().に渡すときに、コンソール デバッグ ウィンドウがopenであるかclosed

    であるかによって異なります。

    元のバグレポートからの抜粋 (https://bugs.webkit.org/show_bug .cgi?id=35801):

    Chromium 開発者の応答:

    多くの苦情が寄せられ、最終的にはバグ修正につながりました。

    2012 年 8 月に実装されたパッチの変更ログの説明 (http://trac.webkit.org/changeset/125174):

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!