var let const

Wonhyo LEE·2022년 12월 13일
0

대표 차이점

  • 스코프
  • 중접할당 여부
  • 호이스팅

스코프

var = 함수단위스코프

function test () {
  var a = 1
   
  if(true){
  console.log(a) // 1
  }
 
}

let, const = 블록단위 스코프

function test () {
  var a = 1
   
  if(true){
  console.log(a) // undefined
  let b = 1
  console.log(b) //1
  }
 
}

중첩할당여부

var

  • 가능

let, const

  • 불가능

호이스팅

var

  • 가능
  • 글로벌 선언시 window 객체 내에 할당됨
  • 사이드 펙트 발생원인으로 사용 지양

let, const

  • 불가능

const 객체 이슈

const 는 상수를 뜻하지만 객체에 할당시 객체값은 참조된 값이므로 변경이 가능하게된다.

이를 방지하기위해 Object.freeze() 기능을 사용하면 상수화 시킬수있다.


const test = {
  x:1,
  y:2
}

Object.freeze(test)

test.x = 11;

console.log(test) // {x:1,y:2}
profile
프론트마스터를 꿈꾸는...

0개의 댓글