[ES6+] block scope 블록 스코프


let 과 const의 장점은 블록스코프가 있다는 것이다.

블록은 말그대로 블록, 구역이다.

그 안에서만 존재한다는 것!

예를들어

if(true){
	let name = 'sora'
}
console.log(name)
//에러

이러면 에러를 뿜는다. name이라는 변수는 {} 안의 스코프에서만 존재하기 때문이다.

그치만 만약 var 를 쓰게되면?

됨ㅋ

if(true){
	var name = 'sora'
}
console.log(name)
//sora

이유는 let, const는 block scope인데 반해

var 는 function scope이기 때문이다.


외부에서 안으로는 접근할 수 없기때문에

let name;
if(true){
	name = 'sora'
}
console.log(name)
//sora

이렇게쓰면 값을 if문안의 내용을 바꾸지 않는이상 값이 바뀌지 않는다

노마드코더의 ‘ES6의 정석’을 듣고 정리 =)




© 2018. by sora

Powered by sora