[모딥다] 04장.변수

vanLan·2026년 1월 19일

모딥다

목록 보기
1/8
post-thumbnail

🗒️변수란?

  • 하나의 값을 저장하기 위해 확보한 메모리 공간 자체
  • 그 메모리 공간을 식별하기 위해 붙인 이름

▶️ 값의 위치를 가리키는 상징적인 이름

🗒️변수 선언

  • 변수를 사용하려면 반드시 선언이 필요.
  • 변수를 선언할 때는 var, let, const 키워드를 사용
  • JS 엔진은 변수 선언을 2단계에 걸쳐 수행
    • 선언 단계: 실행 컨텍스트에 변수 이름을 등록
    • 초기화 단계: 값을 저장하기 위한 메모리 공간을 확보, 암묵적으로 undefined를 할당해 초기화
  • 선언되지 않은 식별자에 접근시 ReferenceError(참조 에러)가 발생

    ※ 실행컨텍스트
    JS 엔진이 소스코드를 평가하고 실행하기 위해 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역

🗒️호이스팅

  • JS는 모든 선언문이, 런타임이 아닌 그 이전 단계(소스코드의 평가 과정)에서 먼저 실행 됨.

  • 이후 선언문을 제외한 소스코드를 한 줄씩 순차적으로 실행.

  • 위와 같은 동작으로 모든 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 JS의 고유의 특징을 일컫는다.

    console.log(score);  // undefined
    
    var score;  // 변수 선언문

🗒️값의 할당

  • 값의 할당은 런타임에 실행됨.

    console.log(score);
    
    var score = 80;
    
    console.log(score);
  • 위와 같이 값의 할당을 하나의 문장으로 단축 표현해도 JS 엔진은 변수의 선언과 할당을 2개의 문으로 각각 실행(런타임 이전: 선언&초기화, 런타임: 할당)

🗒️값의 재할당

  • 변수에 값을 재할당하면 이전 값이 저장되어 있던 메모리 공간을 지우고 그 메모리 공간에 재할당 값을 새롭게 저장하는 것이 아닌, 새로운 메모리 공간을 확보하고 그 메모리 공간에 값을 저장
  • 이로인해 발생한 불필요한 값들은 가비지 콜렉터에 의해 메모리에서 자동 해제. (단, 메모리에서 언제 해제ㅐ될지는 예측 불가)

    ※ 가비지 콜렉터
    애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 더 이상 사용되지 않는 메모리를 해제하는 기능
    JS는 가비지 콜렉터를 내장하고 있어, 메모리 누수를 방지

🗒️네이밍 규칙

  • 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러 기호($)를 포함 가능
  • 숫자로 시작 불가
  • 예약어 사용 불가
profile
프론트엔드 개발자를 꿈꾸는 이

0개의 댓글