JS Deep Dive 04. 변수

CHO WanGi·2024년 1월 4일

Javascript

목록 보기
10/20

변수

데이터를 담는 공간이자 메모리 공간을 식별하기 위해 붙인 이름(식별자)

=>변수를 통해 메모리 주소로 직접 접근하지 않고, 안전하게 데이터를 사용하는 것이 가능

  • 할당 & 참조
    할당: 변수에 값 저장하는 것
    참조: 변수에 저장된 값을 읽어 들이는 것

    변수 선언

    var,let,const 등의 키워드를 사용하여 선언

var score; // undefined

선언에 의해 확보된 메모리 공간에는 JS엔진이 암묵적으로 undefined를 할당하여 초기화

  • 변수 선언 단계
  1. 선언 : 변수 이름을 등록하여 엔진에 변수의 존재를 알림
  2. 초기화 : 값을 저장하기 위해 메모리 공간을 확보하고, 여기에 암묵적으로 undefined 를 할당

=> var 키워드를 사용하면 선언과 초기화 단계가 동시에 진행

Hoisting

console.log(score)

var score;

한줄씩 실행되는 JS 특성상 참조에러를 뱉어낼 것 처럼 보이지만,
암묵적으로 초기화 시킨 값인 undefined를 뱉음

  • 이유
    변수 선언이 런타임 이전 단계에서 먼저 실행되기 때문
    즉, 선언문 평가를 우선하고 그 후 Runtime 서 실행

값의 할당

var score; // 변수 선언
score = 80; // 값의 할당

var score = 80; // 선언 & 할당 동시에 진행

변수 선언은 Runtime 이전에 실행,
값의 할당은 Runtime에 실행

또한 undefined 가 저장된 메모리 주소에 80을 집어넣는 것이 아닌,
새로운 주소에 80을 저장 (재할당 과정도 마찬가지)

더이상 사용하지 않는 것은 가비지 콜렉터가 알아서 없앰

profile
제 Velog에 오신 모든 분들이 작더라도 인사이트를 얻어가셨으면 좋겠습니다 :)

0개의 댓글