1. 변수 선언 방식

var a = 'first'
console.log(a); //first

var a = 'second'
console.log(a); //second

 a라는 변수를 두 번 선언했으나 에러가 나오지 않고 각기 다른 값이 출력된다. 코드가 짧을 때는 편리할 수도 있으나, 코드량이 많아진다면 어디에서 어떻게 사용되는지 파악하기 힘들며, 값이 바뀔 우려가 있다.

 

이것을 보완하기 위해 let과 const가 추가됐다.

 

let a = 'first'
console.log(a);
let a = 'second'
console.log(a);

 변수 a가 두 번 선언되었으므로 에러메세지가 나온다.(let대신 const를 썻어도 똑같은 결과가 출력됨.)

 

let과 const의 차이는 변수의 재할당 유무의 차이가 있다.

let a = 'first'
console.log(a);

a = 'third'
console.log(a); //third
const a = 'first'
console.log(a);

a = 'third'
console.log(a); //error

 위 코드를 보면 let은 변수의 값이 재할당이 가능하지만 const는 재할당이 불가능하다.

 

2. 호이스팅

console.log(a); //underfined

var a;
console.log(a); //underfined

a = 10;
console.log(a); //10

 변수는 선언 단계 -> 초기화 단계 -> 할당 단계에 걸쳐 생성되지만, 예외적으로 var는 선언 단계와 초기화 단계가 한 번에 이루어진다. 

 

console.log(a); //error

let a;
console.log(a); //underfined

a = 10;
console.log(a); //10

위에서 말했던 것처럼 let은 선언 단계와 초기화 단계가 분리되어 출력한다.

'FrontEnd > Javascript' 카테고리의 다른 글

[Javascript] DOM, Document  (0) 2021.08.16
[Javascript] this 키워드, 객체의 프로퍼티 삭제  (0) 2021.08.09
[Javascript] 함수(function)  (0) 2021.08.07
[Javascript] 배열(array)  (0) 2021.08.06
[Javascript] 객체  (0) 2021.08.04