>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 객체 이해 객체 질문의 함정_자바스크립트 기술

자바스크립트 객체 이해 객체 질문의 함정_자바스크립트 기술

WBOY
WBOY원래의
2016-05-16 15:24:101157검색

이 글의 예제는 주로 자바스크립트 객체에 대한 이해와 관심을 끌기 위한 것입니다. 사실 면접 시 함정이 있어 실제 프로젝트에서는 거의 사용되지 않습니다. 하지만 경계심을 높이기 위해 다음 예를 살펴보겠습니다.

코드명

var first = {};
var second = {k:"second"};
var third = {k:"third"};
first[second] = 100;
first[third] = 200;
console.log(first[second])//这里会输出什么内容呢?

이 질문을 직접 해보고 싶다면 아래 설명을 읽지 마세요.

여기서는 어떤 결과가 출력되나요? 대부분의 사람들은 결과가 100이라고 생각하거나, 문제에 오류가 있거나, 결과가 200이라고 생각할 수 있습니다.

사실 최종 결과는 200입니다.

이유는 무엇인가요? 두 번째와 세 번째는 모두 객체이고 둘 다 [객체 객체]이기 때문에 첫 번째[두 번째]는 첫 번째[[객체 객체]]와 동일하고 첫 번째[세 번째]는 다음과 같습니다. first[[object object]] 따라서 최종 결과는 first["[object object]"]가 될 수 있습니다. 예에서 이 표현식은 두 번 할당되므로 최종 결과는 200입니다.

그래서 JavaScript에는 주의해야 할 사항이 많습니다. 아마도 면접관들은 어떤 면접 질문을 해야 할지 몰라서 트랩 스타일의 질문만 하게 될 것입니다. 하지만 기초만 튼튼하게 다지고 아무것도 두려워하지 마세요. 앞으로도 계속해서 질문을 드려 설명하겠습니다!

간단한 예를 통해 모든 사람의 생각을 촉발하고 모든 사람이 자바스크립트 객체를 배우도록 많은 영감을 주었습니다. 모두가 뭔가를 얻을 수 있기를 바랍니다.

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