변수

var

현재 사용하지 않는 방식이며 보이는 var형식의 선언은 const, let으로 작성이 완료된 후, 이전 버전을 위해 변경해주는 것

  • 함수 레벨 유효범위
  • 재할당 O
  • 중복 선언 O
  • 호이스팅 O *
  • 전역 선언시 전역 객체의 속성으로 등록 O

| 호이스팅 - 어디서 선언을 하던지 먼저 변수의 선언이 되어있다. 기존 같은 경우에는 선언하기 전에 불러오면 문제가 생기는데 var 형식은 코드에서 선언만해주면 어디서든 사용가능하다. 코드 가독성이 매우 떨어지겠죠. 왜 썼는지 모르겠다

function fun() {
  console.log(n);
  var n = 123;
}

const

다른 언어랑 같은 역할의 const. 값이 변하지 않는 변수를 선언할때 사용한다.

  • 블록 레벨 유효범위(Block-level scope)
  • 재할당 X
  • 중복 선언 X
  • 호이스팅 X
  • 전역 선언시 전역 객체의 속성으로 등록 X
function fun() {
  console.log(n);// error
  const n = 123;
  console.log(n);// 123 // OK
}

let

let은 자료형이 바뀔 수 있기 때문에 const보다 메모리를 많이 잡고 있다. 다른 언어처럼 자료형을 선언해주지 않기 때문인거 같다... 변수선언은 보통 const, 필요할 경우에만 let을 사용하도록 권장한다... 유연한 js...

  • 블록 레벨 유효범위(Block-level scope)
  • 재할당 O
  • 중복 선언 X
  • 호이스팅 X
  • 전역 선언시 전역 객체의 속성으로 등록 X
function fun() {
  console.log(n);// error
  let n = 123;
  n = 456;
  console.log(n);// 456 // OK
}

0개의 댓글