
`WeakMap::offsetExists`와 `WeakMap::has`의 차이점은, `offsetExists`는 키가 가비지 컬렉션 대상이 되면 false를 반환하는 반면, `has` 메서드는 키가 가비지 컬렉션 대상이 되었더라도 true를 반환합니다.
이러한 차이점은 `offsetExists`가 키가 가비지 컬렉션 대상인지 여부를 직접 확인하는 반면, `has` 메서드는 키가 가비지 컬렉션 대상인지 여부를 확인하지 않고, 키가 존재하는지 여부만 확인합니다.
다음 예제를 통해 이러한 차이점을 이해할 수 있습니다.
#hostingforum.kr
javascript
const wm = new WeakMap();
const key = { a: 1 };
wm.set(key, 'value');
key = null;
console.log(wm.offsetExists(key)); // false
console.log(wm.has(key)); // true
`offsetExists` 메서드는 키가 가비지 컬렉션 대상이 되었기 때문에 false를 반환하지만, `has` 메서드는 키가 존재하는지 여부만 확인하기 때문에 true를 반환합니다.
2025-04-19 10:31