다라다라V
Published 2025. 2. 10. 10:59
변수 코딩언어/JavaScript
728x90
반응형

1. 변수의 선언과 초기화

1.1. 변수의 선언

값을 저장하기 위한 메모리 공간을 확보하고 변수의 이름과 확보된 메모리 공간의 주소를 연결해서
값을 저장하도록 준비하는 것

  • 변수 선언 키워드 : var , let, const
  • 선언하지 않은 식별자에 접근하면 ReferenceError(참조 에러) 발생

1.2. 변수의 초기화

확보된 메모리 공간에는 자바스크립트 엔진에 의해 undefined라는 값이 암묵적으로 할당되어 초기화

  • 변수의 이름은 실행 컨텍스트에 등록됨

    • 자바스크립트 엔진이 소스코드를 평가하고 실행하기 위한 환경 제공,

      코드의 실행 결과 실제로 관리

  • 초기화 단계를 통해 이전 애플리케이션에서 사용했던 값(쓰레기 값)을 참조하지 않음

2. 변수 선언 실행 시점과 호이스팅

2.1. 변수 선언의 실행 시점

변수 선언이 소스코드가 한 줄 씩 실행되는 런타임이 아닌, 그 이전 단계에서 실행됨

<code />
console.log(score); // undefined var score;
  • 자바스크립트 엔진의 실행 순서

    1. 소스코드의 평가 과정

      1. 변수 선언을 포함한 모든 선언문(변수 선언문, 함수 선언문 등)을 소스코드에서 찾아 실행
    2. 선언문 제외 소스코드 한 줄 씩 실행

      ⇒ 변수 선언은 어디에 있든 다른 코드보다 먼저 실행

    변수 선언이 소스코드 어디에 위치하는지와 무관하게 어디서든 변수 참조 가능

2.2. ⭐️ 변수 호이스팅

변수 선언문이 코드의 선수로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징

2.3. 값의 할당

변수 선언 : 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 먼저 실행
값의 할당 : 소스코드가 순차적으로 실행되는 시점인 런타임에 실행

<code />
console.log(score); // undefined var score = 90; console.log(score); // 90
  • 변수의 값을 할당할 때는 새로운 메모리 공간 확보 하고 값을 저장한다는 점에 주의
    • 변수의 재할당은 새로운 메모리 공간을 확보함
    • 식별자와 연결되지 않는 불필요한 값은 가비지콜렉터에 의해 메모리에서 자동 해제
<code />
console.log(score); // undefined score = 90; console.log(score); // 90 var score; console.log(score); // 90
반응형

'코딩언어 > JavaScript' 카테고리의 다른 글

[JavaScript] 08. Objects 객체  (0) 2022.12.22
[JavaScript] 07. Iterators 반복자  (0) 2022.12.21
[JavaScript] 06. Loops 반복  (0) 2022.12.19
[JavaScript] 05. Arrays 배열  (0) 2022.12.18
[JavaScript] 04. SCOPE 범위  (0) 2022.12.16
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!