[JS] 변수 let / const /var의 차이

하서율·2022년 6월 29일
0

JS

목록 보기
12/19

변수란?

다양한 값을 보관할 수 있는 저장공간. 자바스크립트에서 let / const /var을 사용

" 컴퓨터가 코드를 읽고 소프트웨어를 돌릴때 필요한 작업을 메모리로 올리는데, 자바스크립트는 코드가 실행되기전, 선언되어있는 변수(전역)와 함수를 먼저 확인하고 메모리로 가져가 저장을 해두고 필요할 때 마다 불러온다(호이스팅). "



▪️ const

  • 상수 (변하지 않는 값들을 만들때 사용). ID나 비밀번호등 변하지 않는 값(상수)들을 만들때 사용
  • 선언 할때 바로 값을 넣어주어야 하며, 다른 값을 넣으면 오류메세지가 뜬다.


▪️ var

  • 자바스크립트 EC6가 생기기전 사용한 변수

  • 한번 선언된 변수를 다시 선언 할 수 있다.

    var age = 20;
    console.log(age);    //20
    var age = 30;
    console.log(age);   //30
    
  • 전역변수와 지역변수의 차이가 확실하지 않다.
    지역/전역변수 개념

  • 함수만 지역변수로 호이스팅이되고 나머지는 다 전역변수로 올린다

  • 호이스팅이 가능하다.

    ▶️호이스팅?
    안에있는 변수들을 범위의 최상단으로 끌어올리는것

console.log(a)    // a변수가 선언되기전에 a를 사용했지만 오류메세지가 뜨지 않고 undefined라고 뜬다.
 var a = 1
//* 호이스팅시 변수의 선언과 초기화(undefined)를 같이 시켜버리고 값 할당을 나중에 함.
console.log(a)         // 역시 undefined
  a=1                  // 선언되기전 값을 할당해 주는것도 가능
  var a


▪️ let

  • EC6로 업그레이드 후 나온 변수
  • 선언된 변수를 다시선언할 수 없다.
    let age = 20;
    console.log(age);    //20
    let age = 30;
    console.log(age);   //error!
    
     
  • 속한 스코프의 최상단으로의 호이스팅만 가능하며 선언되어 초기화되기 전까지는 TDZ(Temporal Dead Zone)이되어 ReferenceError가 뜬다.
    console.log(a)    // a변수가 선언되기전에 a를 사용 
     let a = 1      
    // ReferenceError


let과 const는 var에 비하면 까다로운 제약조건들이 있지만 프로그래밍을 할때 오류를 낮춰주고 예측가능한 코드를 작성할 수 있게 해준다.

profile
매일 매일 기록하기

0개의 댓글