> 웹 프론트엔드 > JS 튜토리얼 > `console.log`에 때때로 잘못된 개체 상태가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

`console.log`에 때때로 잘못된 개체 상태가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-21 09:12:14
원래의
276명이 탐색했습니다.

Why Does `console.log` Sometimes Show the Wrong Object State, and How Can I Fix It?

Console.log에서 개체의 현재 상태를 표시하는 방법

console.log를 사용하여 개체를 출력할 때 다음과 같은 문제가 발생할 수 있습니다. 표시된 객체가 console.log가 처음 호출되었을 때가 아닌 최종 실행 당시의 상태를 반영하는 문제입니다. 이러한 불일치는 추가 확장이 없는 Safari와 브라우저에서 특히 두드러질 수 있습니다.

문제:

다음 예를 고려하십시오.

var test = { a: true };
console.log(test); // {a: false}
test.a = false; 
console.log(test); // {a: false}
로그인 후 복사

여기서 시나리오에서는 'a' 속성의 실제 값이 변경되었음에도 불구하고 두 번째 console.log 호출이 {a: false}를 잘못 표시합니다. 'false'로 할당되었습니다.

해결 방법: console.dir() 사용

이 문제를 해결하고 console.log가 호출될 때 개체의 현재 상태를 표시하려면 , console.dir() 기능을 활용할 수 있습니다. console.log()와 달리 console.dir()은 호출 시 객체 속성의 디렉터리를 제공하여 객체 상태를 정확하게 표현합니다.

JSON 문자열화 사용:

또는 JSON 문자열화 및 구문 분석을 활용하여 유사한 결과를 얻을 수도 있습니다. 결과:

console.log(JSON.parse(JSON.stringify(obj)));
로그인 후 복사

이 접근 방식에는 JSON.stringify()를 사용하여 개체를 JSON 문자열로 변환한 다음 JSON.parse()를 사용하여 다시 JSON 개체로 구문 분석하는 작업이 포함됩니다. 이렇게 하면 객체를 효과적으로 복제하여 현재 상태를 정확하게 표시할 수 있습니다.

위 내용은 `console.log`에 때때로 잘못된 개체 상태가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿