> 웹 프론트엔드 > JS 튜토리얼 > Firefox와 비교하여 Chrome 및 Safari 콘솔 개체 표시 이상이 발생하는 이유는 무엇입니까?

Firefox와 비교하여 Chrome 및 Safari 콘솔 개체 표시 이상이 발생하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-27 10:01:30
원래의
586명이 탐색했습니다.

Why Do Chrome and Safari Console Object Display Anomalies Occur Compared to Firefox?

브라우저 콘솔의 개체 표시 이상

프로그래밍에서 디버깅에는 콘솔에 있는 개체의 속성과 값을 검사하는 작업이 포함됩니다. 그러나 Chrome, Firefox 및 Safari의 브라우저 콘솔에 개체를 표시할 때 사용자는 예기치 않은 불일치를 경험할 수 있습니다.

Chrome 및 Safari와 Firefox: 개체 값 불일치

질문에 제공된 JavaScript 코드를 고려하십시오.

<code class="javascript">var foo = { bar: 1111 };
console.log(foo);
console.log(foo.bar);
foo.bar = 2222;
console.log(foo);
console.log(foo.bar);</code>
로그인 후 복사

Firefox의 Firebug는 예상 값을 다음과 같이 표시하는 반면:

Object { bar=1111}
1111
Object { bar=2222}
2222
로그인 후 복사

Chrome 및 Safari 콘솔은 특이한 동작을 나타냅니다.

Object { bar=2222}
1111
Object { bar=2222}
2222
로그인 후 복사

불일치 설명

Chrome과 Safari의 콘솔 동작은 디자인 결정에서 비롯됩니다. 객체가 처음에 console.log에 전달되면 참조로 처리됩니다. 동일한 개체에 대한 후속 로깅에는 초기 로그 당시의 값이 아닌 현재 값이 표시됩니다.

콘솔에서 개체 탭이 확장되면 해당 값이 고정되고 원래 개체에서 분리됩니다. . 결과적으로 나중에 개체 값을 변경해도 확장된 탭의 표시에는 영향이 없습니다.

해결 방법

이러한 불일치를 방지하기 위해 개발자는 개체를 직렬화하는 방법을 사용할 수 있습니다. JSON 문자열화와 같은 객체를 객체가 아닌 값으로 변환:

<code class="javascript">console.log(JSON.stringify(foo));</code>
로그인 후 복사

위 내용은 Firefox와 비교하여 Chrome 및 Safari 콘솔 개체 표시 이상이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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