function myFunction() {
var a = 'hello';
if( true ) {
var a = 'bye';
console.log(a); // bye
}
console.log(a); // bye
}
myFunction();
if 문 안에서 새로 선언했음에도 if 문 밖에서 a를 호출하면 변경된 값이 나온다.
var 키워드는 scope가 함수 단위이기 때문이다.
한번 지정하고 나면 변경이 불가능한 상수를 선언할 때 사용
동적인 값을 담을 수 있는 변수를 선언할 때 사용
function myFunction() {
let a = 'hello';
if( true ) {
let a = 'bye';
console.log(a); // bye
}
console.log(a); // hello
}
myFunction();
const와 let은 scope가 블록 단위 이므로, if 문 내부에서 선언한 a의 값은 if 문 밖에서 변경하지 않는다.
const와 let을 사용할 때 같은 블록 내부에서 중복 선언이 불가능하다.
기본적으로 const를 사용하고, 해당 값을 바꾸어야 할때(ex. for문) let을 사용하면 된다.