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