질문 3 · 실전 면접 답변
JavaScript의 원시 타입과 객체 타입은 어떻게 구분하나요?
이렇게 답해 보세요 (핵심 답변)
JavaScript의 값은 undefined, null, boolean, number, bigint, string, symbol의 7가지 원시 타입과 나머지 객체 타입으로 나뉩니다. 원시값은 그 자체를 변경할 수 없는 불변 값이고, 배열과 함수를 포함한 객체 타입은 프로퍼티를 가지며 참조를 통해 내부 상태를 바꿀 수 있습니다. 또한 숫자를 다루는 number는 정수와 부동소수점을 함께 표현하지만 안전하게 표현할 수 있는 정수 범위가 정해져 있어, 아주 큰 정수는 bigint로 구분해 다룹니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- typeof 연산자는 함수에 'function'을, null에 'object'를 반환하므로 모든 타입을 완벽히 분류해 주지는 않습니다.
- 객체를 다른 변수에 대입하면 같은 참조를 공유하므로 한쪽에서 프로퍼티를 수정하면 다른 변수에서도 변경된 값이 보입니다.
면접에서 자주 하는 실수
원시값 자체가 불변이라는 특성과 변수에 다른 값을 재할당할 수 없는 상태(const)를 같은 뜻으로 설명하지 않도록 주의합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 3번을 바탕으로 질문과 답변을 새로 정리했습니다.