JavaScript - 문제 미리보기

문제 669

hard
다음 코드의 실행 결과는? ```javascript const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const fruits = new Map(); fruits.set(apples, 500); fruits.set(bananas, 300); console.log(fruits.get("apples")); console.log(fruits.get(apples)); ```
A. `500`, `500`
B. `undefined`, `500`
C. `500`, `undefined`
D. `undefined`, `undefined`

정답: B

이 문제는 Map에서 객체를 키로 사용할 때의 중요한 개념을 다룹니다. Map에서는 객체 자체가 키가 되며, 문자열과는 완전히 다른 키로 취급됩니다. 1) `fruits.get("apples")`는 `undefined`를 반환합니다. 왜냐하면 키로 저장된 것은 문자열 "apples"가 아니라 `apples` 객체이기 때문입니다. 2) `fruits.get(apples)`는 `500`을 반환합니다. 실제로 키로 사용된 `apples` 객체 참조를 사용했기 때문입니다. Map의 키 비교는 SameValueZero 알고리즘을 사용하므로, 객체 키의 경우 동일한 참조여야만 같은 키로 인식됩니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.