이 글의 예제는 주로 자바스크립트 객체에 대한 이해와 관심을 끌기 위한 것입니다. 사실 면접 시 함정이 있어 실제 프로젝트에서는 거의 사용되지 않습니다. 하지만 경계심을 높이기 위해 다음 예를 살펴보겠습니다.
코드명
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에는 주의해야 할 사항이 많습니다. 아마도 면접관들은 어떤 면접 질문을 해야 할지 몰라서 트랩 스타일의 질문만 하게 될 것입니다. 하지만 기초만 튼튼하게 다지고 아무것도 두려워하지 마세요. 앞으로도 계속해서 질문을 드려 설명하겠습니다!
간단한 예를 통해 모든 사람의 생각을 촉발하고 모든 사람이 자바스크립트 객체를 배우도록 많은 영감을 주었습니다. 모두가 뭔가를 얻을 수 있기를 바랍니다.