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));
```
정답: B
이 문제는 Map에서 객체를 키로 사용할 때의 중요한 개념을 다룹니다. Map에서는 객체 자체가 키가 되며, 문자열과는 완전히 다른 키로 취급됩니다.
1) `fruits.get("apples")`는 `undefined`를 반환합니다. 왜냐하면 키로 저장된 것은 문자열 "apples"가 아니라 `apples` 객체이기 때문입니다.
2) `fruits.get(apples)`는 `500`을 반환합니다. 실제로 키로 사용된 `apples` 객체 참조를 사용했기 때문입니다.
Map의 키 비교는 SameValueZero 알고리즘을 사용하므로, 객체 키의 경우 동일한 참조여야만 같은 키로 인식됩니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.