본문 바로가기
Javascript

var, let, const 차이

by 이매➰ 2024. 10. 1.

var, let, const 차이는 크게 호이스팅, 스코프, 재선언, 재할당에서 나타난다

호이스팅

 

호이스팅(hoisting)이란?

호이스팅(hoisting)이란? 자바스크립트에서 변수와 함수의 선언이 해당 범위의 최상단으로 끌어올려지는 동작을 말한다해당 범위는 스코프를 말한다작성 위치와 상관 없이 변수 선언과 함수 선

08x0040x.tistory.com

 

스코프

 

스코프(Scope)란?

스코프란? 변수가 접근할 수 있는 코드의 영역을 말한다 전역 스코프파일 전체에 걸쳐 변수를 사용할 수 있는 영역예시var globalVar = "I'm global!";function test() { console.log(globalVar); // "I'm global!" (전역

08x0040x.tistory.com

 

재선언, 재할당

에 대해 설명하기 전에

 

  1. 선언
    • 변수를 메모리에 등록하는 과정
    • 예시
      let x; // 변수를 선언하지만 값은 없음
  2. 초기화
    • 변수를 선언할 때 자바스크립트 엔진이 메모리 공간을 확보하고, 기본 값을 할당하는 단계
    • var은 선언과 동시에 자동으로 undefined로 초기화된다
    • let과 const는 선언되지만 초기화는 변수 선언문이 실제로 실행될 때 이루어진다
      초기화 과정이 끝나기 전까지는 일시적 사각지대에 있다
    • 예시
      let y;  // 선언, 초기화 X (TDZ 상태)
      console.log(y); // ReferenceError
      y = 10; // 초기화 및 할당
  3. 할당
    • 변수가 선언되었거나 초기화된 이후에 값을 대입하는 과정
    • 초기화는 변수가 메모리에 잡히고 사용 가능하게 만드는 단계지만, 할당은 그 변수에 값을 넣는 것을 의미한다
    • 예시
      let a;      // 선언 (초기화 X)
      a = 10;     // 초기화 및 할당 (초기화는 선언문 실행 시)
      a = 20;     // 값 변경 (새로운 값 할당)

초기화와 할당의 차이

초기화는 변수가 선언된 후에 메모리에 자리를 차지하고 사용할 준비가 되는 과정이다

할당은 초기화된 변수에 값을 넣는 과정이다

 

키워드 스코프 호이스팅 재할당 재선언
var 함수 스코프 선언과 초기화 함께
(undefined)
가능 가능
let 블록 스코프 선언만 호이스팅
(일시적 사각지대에 있음)
가능 불가능
const 블록 스코프 선언만 호이스팅
(일시적 사각지대에 있음)
불가능 불가능

 

const로 선언된 변수의 경우 재할당이 불가능하지만,

객체나 배열일 경우 내부 속성이나 요소를 변경하는 것은 가능하다

'Javascript' 카테고리의 다른 글

this 키워드  (0) 2024.10.13
클로저(Closure)란?  (1) 2024.10.05
함수 선언문과 함수 표현식  (0) 2024.10.04
스코프(Scope)란?  (0) 2024.10.01
호이스팅(hoisting)이란?  (6) 2024.10.01