scope let과 const

let은 블럭 단위로써 아래 예제를 통해 가볍게 이해할 수 있다.

 

var name = 'name';

//var
function hello(){
    for(var i=0;i<10;i++){
    	console.log(i); //0부터 9까지 출력
    }
    console.log(i); //10출력
}

//let
function hello(){
    for(let i=0;i<arr.length;i++){
    	console.log(i); //정상 실행
    }
    console.log(i); //for문 바깥에 쓰면 오류발생
}

위 코드를 보면 0부터 9까지 출력하는 함수를 정의했다. let은 보는것과 같이 for문 안에 써야 정상실행이 가능하다. 이것이 바로 block 단위이기 때문이다.

 

const도 아래 예제 코드를 보면 한번에 이해할 수 있다.

 

//var
function home(){
	var homename = 'dahan';
    homename = 'cho';
    console.log(homename);
}

home(); //cho출력

//const
function home(){
	var homename = 'dahan';
    homename = 'cho'; //지우고 실행하면 정상 실행
    console.log(homename);
}

home(); //재할당 오류

따라서 const는 재할당할 수 없다. 하지만 let은 재할당이 가능하다. 즉, let과 const를 주로 사용하되 변수가 바뀌지 않다면 const를 변수를 변경해야 하면 let을 사용하자.

이 글을 공유하기

댓글

Designed by JB FACTORY