JavaScript에서 Map 객체의 has() 메서드는 특정 키가 Map 안에 존재하는지 확인하는 기능을 합니다. 이 메서드는 키를 인수로 전달받아 불리언(Boolean) 값을 반환하며, 해당 키가 존재하면 true, 존재하지 않으면 false를 리턴합니다.
Map은 키-값(key-value) 쌍을 저장하는 자료구조로, has() 메서드를 활용하면 데이터를 읽거나 수정하기 전에 특정 키가 이미 등록되어 있는지 손쉽게 검사할 수 있어 실무에서 매우 유용하게 사용됩니다.
문법(Syntax)
has() 메서드의 기본 문법은 다음과 같습니다.
mapVar.has(key)
- key (필수): 존재 여부를 확인하고자 하는 키입니다.
- 반환값: 키가 존재하면
true, 존재하지 않으면false(불리언 타입)
예제 1: 존재하는 키 확인하기
다음 예제에서는 네 개의 키-값 쌍을 가진 Map을 생성한 뒤, 키 '3'이 존재하는지 확인합니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var mapVar = new Map();
mapVar.set('1', 'Java');
mapVar.set('2', 'JavaFX');
mapVar.set('3', 'HBase');
mapVar.set('4', 'Neo4j');
document.write(mapVar.has('3'));
</script>
</body>
</html>출력 결과
키 '3'은 set() 메서드로 등록된 상태이므로 true가 출력됩니다.
true
예제 2: 존재하지 않는 키 확인하기
이번에는 Map에 등록되지 않은 키 '19'로 존재 여부를 확인해 보겠습니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var mapVar = new Map();
mapVar.set('1', 'Java');
mapVar.set('2', 'JavaFX');
mapVar.set('3', 'HBase');
mapVar.set('4', 'Neo4j');
document.write(mapVar.has('19'));
</script>
</body>
</html>출력 결과
키 '19'는 Map에 등록되어 있지 않으므로 false가 출력됩니다.
false
참고 사항
has()메서드는 문자열뿐만 아니라 숫자, 객체, 함수 등 모든 자료형의 키를 확인할 수 있습니다.- 존재하지 않는 키를 조회해도 에러가 발생하지 않고 단순히
false를 반환하므로 안전하게 사용할 수 있습니다. NaN도 Map의 키로 사용할 수 있으며,has(NaN)호출 시 정확하게 일치 여부를 판별합니다.