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의 순서대로 올바른 결과는?
A. "object", "object", "object", "string"
B. "array", "null", "date", "string"
C. "array", "object", "date", "string"
D. "object", "null", "object", "string"

정답: B

이 함수는 `typeof`의 한계를 극복하기 위한 개선된 타입 체크 함수입니다: 1) 배열: `Array.isArray()`로 체크하여 "array" 반환 2) null: 명시적으로 체크하여 "null" 반환 (typeof의 버그 회피) 3) Date: `constructor` 속성으로 체크하여 "date" 반환 4) 기타: `typeof` 사용 이런 방식으로 `typeof`만으로는 구분할 수 없는 구체적인 타입들을 정확히 식별할 수 있습니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.