본문 바로가기
JavaScript

[면접스터디][JS] 스코프

by g2hans 2021. 9. 22.

모의면접 스터디 주제인 스코프에 대해서 답변한 내용을 포함한 짧막한 정리에 대한 글입니다.

공부를 하면서 정리한 내용이라 정확하지 않으니, 참고만 해주시길 바랍니다.

잘못된 부분이 있다면 피드백 남겨주세요 :)

 

🖇 정리 마인드맵 by transno

transno 스코프 마인드맵


1. Scope가 무엇인지 아는대로 설명해주세요.

자바스크립트의 스코프는 변수 또는 함수의 유효범위입니다. 즉 변수나 함수를 참조하거나 표현할 수 있는 범위를 스코프라고 합니다.

 

보통의 프로그래밍 언어에서 함수나 변수를 어디에서 호출했는지에 따라서 스코프가 결정되는 동적 스코프와, 선언되는 위치에 따라 상위 스코프가 결정이 되는 정적 스코프가 있습니다. 이 중 자바스크립트는 후자인 정적 스코프를 따르며 이는 렉시컬 스코프라고도 합니다.

 

자바스크립트의 스코프는 전역 스코프, 함수 스코프, 모듈 스코프(, eval 스코프)가 있으며 es6 문법에서부터는 let과 const를 사용하여 블럭 스코프를 만들 수 있습니다. 이들은 다시 크게 지역 스코프와 전역 스코프로 분류할 수 있는데, 지역 스코프에서 선언된 식별자는 해당 지역 스코프와 하위 지역 스코프에서 사용이 가능하며, 전역 스코프에서 선언된 함수나 변수는 모든 곳에서 사용이 가능합니다. 

 

또한 자바스크립트 엔진은 해당 스코프에서 찾고자하는 식별자의 정보가 없으면 상위 스코프로 식별자 정보를 찾아나섭니다. 이를 스코프 체인이라고 합니다.

 


✔️ 더 공부해야하는 부분

  • 실행컨텍스트와 Scope의 관계 (ES6)
  • Module Scope

📚 참고자료

'JavaScript' 카테고리의 다른 글

[면접스터디][JS] 값, 식, 문  (0) 2021.09.22

댓글