scope = bubble = variable 이 접근 가능한지 아닌지를 감지한다.
ex) if (true) { const hello = "hi"; } console.log(hello); /* error! -> variable이 block scope(={}) 안에 있어서 접근 할 수 없다. 즉, block scope 안에 작성된 variable은 {} 밖에서는 정의되어 있지 않다.*/
하지만, 반대의 경우, block scope 밖에서 정의된 variable은 block scope 안에서 사용할 수 있다.
ex) const hello = "hi"; if (true) { console.log(hello); }
- variable이 block scope 밖에 있을 때, block scope 안에서 값을 수정할 수 있다.
ex) let hello; if (true) { hello = "lalala"; } console.log(hello); /* 출력되는 값 = lalala */