콘솔은 수정 전 변경된 배열 값을 출력합니다
JavaScript에서 변수는 일반적으로 참조로 전달됩니다. 즉, 이후의 변수에 대한 변경 사항이 적용됩니다. 다른 변수에 할당되면 두 변수 모두에 반영됩니다. 이 동작은 console.log()를 사용하여 변수 값을 표시할 때 자주 관찰됩니다.
예를 들어 다음 코드를 고려하세요.
let A = [2, 1]; let C = A; console.log(C); // [1, 2]
이 예에서 변수 C 변수 A에 저장된 배열에 대한 참조가 할당됩니다. console.log(C)가 실행되면 배열의 현재 값인 [1, 2]가 출력됩니다. 그러나 원래 배열 A가 나중에 수정되면 이 값이 최신이 아닐 수 있습니다.
A.sort(); console.log(C); // [1, 2]
배열 A에서 sort() 메서드를 실행하면 해당 요소가 제자리에서 정렬됩니다. 배열 C는 동일한 객체에 대한 참조를 보유하므로 console.log(C)의 출력은 [1, 2]로 유지됩니다. 이는 console.log()가 실행 시 정적 값이 아닌 객체의 현재 값을 표시하기 때문입니다.
이러한 예상치 못한 동작을 방지하고 console.log()가 정확한 값을 출력하도록 하려면 다음 중 하나를 사용할 수 있습니다:
console.log(JSON.parse(JSON.stringify(C)));
또는 MDN에서 제안하는 대로:
Object.assign({}, A)
위 내용은 JavaScript에서 `console.log()`가 수정되기 전에 변경된 배열 값을 표시하는 것처럼 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!