New

JavaScript variables life cycle

lshjju 2026. 5. 4. 16:15

자바스크립트 변수 생명주기에 대해 알아 봅시다.



자바스크립트의 변수 생명주기와 관련된 용어들을 아주 쉽게 정리해 드릴게요.

비유하자면 '이름표가 붙은 상자'를 떠올리면 이해가 빠릅니다.

1. 자바스크립트 핵심 용어 정리

용어 쉬운 설명 예시 코드
Declare 선언 "이제부터 이런 이름의 상자를 쓸 거야!"라고 선언하는 것. let box;
Assign 할당 만들어둔 상자에 물건(값)을 집어넣는 것. box = 10;
Initialization 초기화 상자를 만듦과 동시에 처음으로 값을 넣는 것. let box = 10;
Reassign 재할당 이미 값이 들어있는 상자의 물건을 빼고 새것으로 바꾸는 것. box = 20;
Define 정의 선언과 할당을 합친 개념. "이 변수는 이런 존재다"라고 확정 짓는 것. (보통 선언+할당을 의미)
Redefine 재정의 이미 정의된 변수를 아예 처음부터 다시 정의하는 것. (var에서만 가능) var a=1; var a=2;
Undefined 정의되지 않음 상자는 있는데, 안에 아무것도 들어있지 않은 상태 (JS의 기본값). let a; // a는 undefined

2. 미국 개발자들은 어떻게 부를까?

결론부터 말씀드리면, 문맥에 따라 둘 다 쓰지만 역할이 다릅니다.

Declare vs Declaration

  • Declare (동사): "변수를 선언하다"라는 행위를 말할 때 씁니다.
    • 예: "You need to declare a variable first."
  • Declaration (명사): "선언문"이라는 코드 자체나 개념을 말할 때 씁니다.
    • 예: "Where is the variable declaration?"

Assign vs Assignment

  • Assign (동사): "값을 넣다/할당하다"라는 동작을 말할 때 씁니다.
    • 예: "Let's assign the value 5 to x."
  • Assignment (명사): "할당"이라는 현상이나 = 기호(Assignment operator)를 말할 때 씁니다.
    • 예: "This assignment causes an error."

💡 꿀팁: 핵심 차이 요약

  • Declare vs Define: 사실 자바스크립트에서는 혼용해서 많이 쓰지만, 엄밀히 따지면 Declare는 이름을 등록하는 것, Define은 그 이름에 실제 값이나 로직(함수 등)이 채워진 상태를 의미합니다.
  • Const의 특징: const로 변수를 만들면 Reassign(재할당)이 불가능합니다. 그래서 선언과 동시에 Initialization(초기화)을 반드시 해줘야 합니다.