>웹 프론트엔드 >JS 튜토리얼 >`var name = {}`을 할당하면 브라우저마다 다른 결과가 나타나는 이유는 무엇입니까?

`var name = {}`을 할당하면 브라우저마다 다른 결과가 나타나는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-20 03:08:081023검색

Why Does Assigning `var name = {}` Produce Different Results in Different Browsers?

JavaScript 객체의 변수 "이름" 동작 불일치

JavaScript에서 변수 이름은 문자열 값으로 특별한 역할이 할당되었습니다. 창 개체(window.name). 이 고유한 특성으로 인해 JavaScript 개체와 함께 이름을 사용할 때 예기치 않은 동작이 발생할 수 있습니다.

전역 스크립트로 실행되는 다음 코드 조각을 고려하세요.

var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);

Chrome에서 이 코드는 다음을 생성합니다. 경고가 표시되면 "정의되지 않음"이 표시되지만 IE 및 Firefox에서는 FirstName 속성에 액세스할 수 있으며 "Tom"이 표시됩니다.

이러한 불일치 Chrome이 window.name을 문자열로 명시적으로 강제하기 때문에 발생합니다. 결과적으로 var name = {} 할당은 기본적으로 전역 변수 이름(window.name)을 "[object Object]"로 설정합니다. name은 이제 기본 요소이므로 name.FirstName과 같은 속성을 설정하려는 시도는 효과가 없습니다.

이 문제를 해결하려면 name을 전역 변수로 사용하지 마세요. 다른 변수 이름을 할당하면 window.name과 관련된 고유한 동작이 실수로 트리거되지 않도록 할 수 있습니다.

위 내용은 `var name = {}`을 할당하면 브라우저마다 다른 결과가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.