>  Q&A  >  본문

console.log()는 변수 값이 실제로 변경되기 전에 변경된 값을 표시합니다.

<p>이 코드를 이해했습니다. A를 복사하여 C라고 부릅니다. A가 변경되면 C는 변경되지 않고 그대로 유지됩니다</p> <pre class="brush:php;toolbar:false;">var A = 1; var C = A; console.log(C); // 1 ++; console.log(C); // 1</pre> <p>그러나 A가 배열인 경우에는 상황이 다릅니다. C가 변할 뿐만 아니라 A</p> <pre class="brush:php;toolbar:false;">var A = [2, 1]; var C = A; console.log(C); // [1, 2] A.정렬(); console.log(C); // [1, 2]</pre> <p>두 번째 예에서 무슨 일이 일어나고 있는지 설명해 주실 수 있나요? </p>
P粉427877676P粉427877676441일 전521

모든 응답(2)나는 대답할 것이다

  • P粉023326773

    P粉0233267732023-08-28 15:10:01

    console.log()참조를 개체에 전달하므로 개체가 변경됨에 따라 콘솔의 값도 변경됩니다. 이를 방지하려면 다음을 수행하세요.

    으아악

    MDN 경고:

    회신하다
    0
  • P粉795311321

    P粉7953113212023-08-28 12:26:58

    Pointy의 답변은 좋은 정보를 제공하지만 이 질문에 대한 정답은 아닙니다.

    OP에서 설명한 동작은 2010년 3월에 처음 보고되고 2012년 8월에 Webkit에 대해 패치된 버그의 일부였지만 이 글을 쓰는 시점에서는 아직 Google Chrome에 통합되지 않았습니다. 동작은 객체 리터럴을 console.log() .에 전달할 때 콘솔 디버그 창이 열려 있는지 닫혀 있는지

    에 따라 달라집니다.

    원래 버그 보고서에서 발췌(https://bugs.webkit.org/show_bug .cgi?id=35801):

    Chromium 개발자 답변:

    많은 불만이 제기되어 결국 버그 수정이 이루어졌습니다.

    2012년 8월에 구현된 패치에 대한 변경 로그 설명(http://trac.webkit.org/changeset/125174):

    회신하다
    0
  • 취소회신하다