in 연산자를 사용하여 객체의 존재 유무를 판단할 때 가끔 의도치 않은 결과가 반환되는 경우가 있다.
그 이유는 in 연산자는 명시된 속성이 명시된 객체에 존재하면 true를 반환하기 때문이다. 즉, 객체가 undefined로 설정되어 있어도 그것을 true라고 반환하는 것이다.
in 연산자에서 false를 반환하기 위해서는 처음부터 정의되지 않았거나 delete 연산자를 통해 제거된 속성이어야 한다.
이러한 문제 발생의 가능성을 제거하고자 다른 방법을 사용하여 객체의 포함 여부를 확인하였다.
- 포함 여부를 확인하고자 하는 객체의 수가 적을 때는 switch 문을 통해 처리를 해주었다.
- 객체 체이닝을 통해 존재 여부를 확인하였다.
'Javascript' 카테고리의 다른 글
[ Javascript ] 문자열을 숫자로 형변환하는 3가지 방법 (0) | 2024.03.28 |
---|---|
[ Javascript ] 첨부파일 다운로드 | Blob (0) | 2024.03.28 |
디버깅에 사용할 수 있는 다양한 console API (0) | 2024.03.27 |
[ Javascript ] fill 배열 메서드를 이용해 초기값 채워넣기 (0) | 2024.03.27 |
동적 프로퍼티 할당이 성능을 잡아먹을까? | 자바스크립트 엔진의 Hidden Class (0) | 2024.03.27 |