학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 2 · 실전 면접 답변

변수 선언·초기화·할당은 어떻게 다른가요?

이렇게 답해 보세요 (핵심 답변)

선언은 스코프에 변수 이름을 등록하는 단계이고, 초기화는 그 변수에 첫 값을 정하는 단계이며, 할당은 변수에 값을 대입하는 연산입니다. 예를 들어 let x;는 선언문이 실행될 때 undefined로 초기화되고 이후 x = 3으로 값을 할당합니다. 반면 const x = 3은 재할당이 금지되므로 선언과 초기화를 반드시 한 번에 해야 하며, var와 let은 초기화되는 시점이 달라 선언문 앞에서 접근할 때의 결과도 다르게 나타납니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. let이나 const 변수를 초기화되기 전에 읽으려고 하면 TDZ(일시적 사각지대) 때문에 ReferenceError가 발생합니다.
  2. const에 객체를 담으면 변수 바인딩의 재할당만 막힐 뿐, 객체 내부 프로퍼티를 변경하는 것까지 막지는 않습니다.

면접에서 자주 하는 실수

아직 선언되지 않은 식별자와 선언 후 undefined로 초기화된 변수는 동작과 에러 종류가 다르므로 혼동하지 않아야 합니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 2번을 바탕으로 질문과 답변을 새로 정리했습니다.

← JavaScript