스코프
https://developer.mozilla.org/ko/docs/Glossary/Scope
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Building_blocks/Functions#%ED%95%A8%EC%88%98_%EC%8A%A4%EC%BD%94%ED%94%84%EC%99%80_%EC%B6%A9%EB%8F%8Cconflicts
❗ 스코프란? 이전에 정리해 둔 포스트 'JS) 함수(Function) 이해하기 3' -> 3번을 참조하면 된다.
스코프 체인은 말 그대로 스코프가 연결되어 있다는 뜻이다.
let animal = 'penguin';
function print(){
let animal2 = 'cat';
function innerPrint() {
console.log(animal);
console.log(animal2);
}
innerPrint();
}
print();
// console.log(animal); => penguin
// console.log(animal2); => cat
animal
과 animal2
는 innerPrint()
내에 선언되지 않았다.
그럼에도 외부 렉시컬 환경 참조를 통하여
연결되어있는 print()
함수에서 animal2 = 'cat'
을 찾고,
전역 변수 animal
에서 'penguin'
을 찾았다.
이렇게 위의 예시 코드에서 스코프 체인을 확인할 수 있었다.
📌정리하면서 이해에 도움이 되었던 블로그
https://velog.io/@bico/JavaScript-%EB%A0%89%EC%8B%9C%EC%BB%AC-%EC%8A%A4%EC%BD%94%ED%94%84lexical-scope
https://velog.io/@oneook/%EC%8A%A4%EC%BD%94%ED%94%84%EC%99%80-%EC%8A%A4%EC%BD%94%ED%94%84-%EC%B2%B4%EC%9D%B8-JavaScript-Basics#1-1-%EC%A0%84%EC%97%AD-%EB%B3%80%EC%88%98-global-variables%EC%99%80-%EC%A7%80%EC%97%AD-%EB%B3%80%EC%88%98-local-variables
https://ljtaek2.tistory.com/140