[ES6+] block scope 블록 스코프
in JavaScript
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의 정석’을 듣고 정리 =)