var, let의 차이

EBinY·2021년 12월 23일
0

const, var, let

  • const: 상수를 만들 때, 변하고 싶지 않은 값들을 만들때 쓰임
  • var: 함수만 지역변수로 호이스팅이 되고, 나머지는 다 전역변수로 올림
for(var i = 1; i < 5; i++) {
  console.log(i); // 1,2,3,4
}
console.log(i); // 5

var a = 1;
console.log(a); // 1
var a = 2;
console.log(a); // 2
  • let: var를 해결하기 위해 2015년 ES6에서 만든 새로운 선언 명령문
for(let i = 1; i < 5; i++) {
  console.log(i); // 1,2,3,4
}
console.log(i); // not defined

let a = 1;
console.log(a); // 1
let a = 2;
console.log(a); // already been declared
  • hoisting: 선언된 변수와 함수를 가져가서 메모리에 기억을 해두었다가 불러옴
    • 안에 있는 변수들을 범위의 최상단으로 끌어올리는 것
    • 아래의 예제에서, 1번 줄의 값은 undefined이 나옴
      • 아래에 선언해 둔 a를 호이스팅으로 리스트에 가지고 있음, 하지만 변수는 할당 전
    • 아래의 2,3번 줄을 삭제하고 실행한다면, refe error가 나옴, not defined
      • 선언해 둔 변수가 없기 때문에, 정의되지 않은 변수라는 에러가 나옴
console.log(a);
var a = 1;
// a = 1, var a 도 실행이 된다
console.log(a);
  • 전역 변수: 블럭 밖에서 선언, 코드 내 어디서든 사용이 가능하도록 선언한 변수
  • 지역 변수: 블럭 {} 안에서 선언된 변수, 블럭 안에서만 쓸 수 있음

0개의 댓글