JAVASCRIPT scope and scope chain
앞서 실행 컨텍스트 에서는 scope chain이 존재 한다고 언급하였다. 스코프와 관련된 여러 용어 부터 알아보자. Scoping : 프로그램의 변수가 어떻게 조직되어 있고 접근 가능한 지이다. "어디서 변수들이 살고 있는지" , "어디서 특정한 변수에 접근할 수 있는지" Lexical scoping : scoping이 함수의 위치 그리고 코드의 블럭에 따르는 것이다. Scope : 특정한 변수가 선언된 장소나 환경이다.(variable environment 는 함수의 경우이다.) 전역 규모, 함수 규모 그리고 block 규모가 있다. Scope of a variable : 특정한 변수에 접근 가능한 코드의 지역 스코프의 세가지 종류 자바스크립트에는 세가지 종류의 scope가 있다. 먼저 Global scope 어떠한 함수나 블럭 밖에 위치하여 있다. global scope 에서 선언된 모든 변수들은 모든 곳에서 사용가능하다. Function scope 1.변수들은 오직 함수 안에만 접근가능하다. 2.local scope 라고도 불린다. Block scope 1, 변수들은 오직 block 안에서만 접근 가능하다. 2. 그러나, 오직 let 그리고 const 변수들만 적용된다.(var 은 적용 안됨) 3. 함수들은 또한 block scope 이다. (strict mode 에서는 블럭 스코프이지만) (strict mode 가 아닐 시 function scope 이다) scope chain 에 대해 알아보자. const myName = " jonas " ; function first () { const age = 30 ; if ( age >= 30 ) { const decade = 3 ; var millenial = true ; } function second () { const j...