JavaScript - 문제 미리보기
문제 394
hard
다음 코드의 실행 결과는?
```javascript
const checkType = (value) => {
if (Array.isArray(value)) return "array";
if (value === null) return "null";
if (value?.constructor === Date) return "date";
return typeof value;
};
console.log(checkType([1, 2, 3])); // A
console.log(checkType(null)); // B
console.log(checkType(new Date())); // C
console.log(checkType("hello")); // D
```
A, B, C, D의 순서대로 올바른 결과는?
정답: B
이 함수는 `typeof`의 한계를 극복하기 위한 개선된 타입 체크 함수입니다:
1) 배열: `Array.isArray()`로 체크하여 "array" 반환
2) null: 명시적으로 체크하여 "null" 반환 (typeof의 버그 회피)
3) Date: `constructor` 속성으로 체크하여 "date" 반환
4) 기타: `typeof` 사용
이런 방식으로 `typeof`만으로는 구분할 수 없는 구체적인 타입들을 정확히 식별할 수 있습니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.