질문 20 · 실전 면접 답변
JavaScript가 동적 타입 언어라는 것은 무엇을 뜻하나요?
이렇게 답해 보세요 (핵심 답변)
JavaScript가 동적 타입 언어라는 것은 타입이 변수 선언문이 아니라 실행 시점의 값에 붙으며, 하나의 변수에 숫자를 넣었다가 나중에 문자열이나 객체를 다시 할당할 수 있다는 뜻입니다. 그렇다고 타입 규칙이 없는 것은 아니어서 각 연산자와 메서드는 런타임에 값의 타입을 확인해 동작합니다. 이를 보완하기 위해 TypeScript를 도입하면 코드 실행 전에 정적 타입 검사를 수행할 수 있지만, 컴파일 후에는 타입 정보가 제거되므로 외부 API 응답이나 사용자 입력은 런타임에 별도로 검증해야 합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 변수 바인딩에 고정된 타입 제약이 없을 뿐, 실행 시점에 숫자를 함수처럼 호출하면 즉시 TypeError가 발생합니다.
- 동적 타이핑(변수에 여러 타입의 값을 담을 수 있음)과 암묵적 형변환(연산자가 타입을 자동 변환함)은 서로 구분되는 개념입니다.
면접에서 자주 하는 실수
동적 타입 언어라고 해서 타입이 아예 존재하지 않는다거나 어떤 연산이든 에러 없이 실행된다고 오해해서는 안 됩니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 20번을 바탕으로 질문과 답변을 새로 정리했습니다.