렉시컬 스코프(Lexical Scope)

조영썬·2024년 9월 27일
0

Lexical Scope?

  • 자바스크립트에서는 렉시컬 스코프(Lexical Scope)라는 스코핑 방식을 이용
  • 정적 스코프(Static Scope)라고도 불림
  • 함수가 호출될 때가 아닌,함수가 선언될 때 스코프가 결정된다는 개념

ex)

  1. name 변수를 선언
  2. 함수 doo는 변수 name을 출력하는 함수이므로, 전역 변수인 name을 참조
  3. 함수doo 내부에서 변수 name을 다시 선언하고 kim으로 할당하지만, 재선언 재할당된 name 변수는 함수 doo에서만 유효한 지역 변수이다.
    doo 함수는 boo함수 내부의 스코프 영향을 받지 않고 변수 전역에서 정의된 name = 'jo'를 참조한다.
  4. boo();// jo출력


    위에서 보이는 예시처럼 함수를 어느위치에서 호출하는지에 상관없이, 무조건 자기 자신의 스코프를 찾아보고 그 후에는 전역 스코프를 찾는것을 볼수있다.



왜 Lexical Scope인가?

  • Lexical과 연관된 단어중 Lexicon 단어가 존재
  • Lexicon: (특정 언어·분야·개인·집단에서 사용하는 모든) 어휘

전체가 쓴다기보단 특정, 개인, 집단에서
즉, 어떤 한정된 블록 내에서 사용한다는 뜻으로 Lexical Scope는 정의된 특정한 구역 내에서 사용하는 스코핑 방식으로 해석

출처:
https://www.zerocho.com/category/JavaScript/post/5740531574288ebc5f2ba97e
https://ljtaek2.tistory.com/145
https://jake-seo-dev.tistory.com/180#Dynamic%--Scope

0개의 댓글