Loading...

[JS] 스코프 Scope

스코프는 변수에 접근할 수 있는 범위 이다. 자바스크립트는 기본적으로 ES5까지는 함수 단위 스코프를 지원했고 ES6에 와서 블록 단위 스코프를 지원한다. var가 함수 단위의 스코프를 지원하고 let, const가 블록 단위 스코프를 지원한다. var, 함수 단위 스코프 if 나 for 문 같은 블록의 변수는 공유되나 함수 스코프 내의 변수는 공유하지 않는다. var a=1; // 전역 스코프 // if, for와 같은 블록은 같은 스코프라고 인식해서 블록을 지나도 해당 변수에 // 접근할 수 있다. if(true){ var a=2; } // 함수 내에서 선언된 변수는 함수 스코프를 지원하므로 함수 밖에서는 해당 변수에 // 접근할 수 없다. function test(){ var b=3; console..

[You Don't know JS] part 2-1 스코프와 클로저 - 스코프란 무엇인가 정리

스코프 특정 장소에 변수를 저장하고 나중에 그 변수를 찾는데 정의된 규칙의 집합 컴파일러 자바스크립트는 사실 컴파일러 언어이다. (일반적으로 동적, 인터프리터 언어로 분류됨) 다른 전통적인 컴파일러 언어처럼 코드를 미리 컴파일하거나 그 결과를 분산 시스템에서 이용할 수는 없다 자바스크립트 엔진이 전통적인 컴파일러 언어에서 하는 컴파일러 역할을 대부분 처리한다 전통적인 컴파일러 처리 과정 소스코드가 실행되기 전에 보통 3단계를 거치는데, 이를 컴파일레이션이라고 한다 1. 토크나이징/렉싱 문자열을 나눠 토큰이라는 의미있는 조각으로 만드는 과정 var a=2; => var / a / = / 2 / ; 토크나이저가 상태 유지 파싱 규칙을 적용해 a가 별개의 토큰인지 다른 토큰 일부인지 파악한다면 그것은 렉싱이다..