질문 2 · 실전 면접 답변
변수 선언·초기화·할당은 어떻게 다른가요?
이렇게 답해 보세요 (핵심 답변)
선언은 스코프에 변수 이름을 등록하는 단계이고, 초기화는 그 변수에 첫 값을 정하는 단계이며, 할당은 변수에 값을 대입하는 연산입니다. 예를 들어 let x;는 선언문이 실행될 때 undefined로 초기화되고 이후 x = 3으로 값을 할당합니다. 반면 const x = 3은 재할당이 금지되므로 선언과 초기화를 반드시 한 번에 해야 하며, var와 let은 초기화되는 시점이 달라 선언문 앞에서 접근할 때의 결과도 다르게 나타납니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- let이나 const 변수를 초기화되기 전에 읽으려고 하면 TDZ(일시적 사각지대) 때문에 ReferenceError가 발생합니다.
- const에 객체를 담으면 변수 바인딩의 재할당만 막힐 뿐, 객체 내부 프로퍼티를 변경하는 것까지 막지는 않습니다.
면접에서 자주 하는 실수
아직 선언되지 않은 식별자와 선언 후 undefined로 초기화된 변수는 동작과 에러 종류가 다르므로 혼동하지 않아야 합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 2번을 바탕으로 질문과 답변을 새로 정리했습니다.