본문 바로가기

Frontend/Javascript2

[JS] 클로저 closure 클로저는 함수를 일급 객체로 취급하는, javascript를 포함한 프로그래밍 언어에서 사용되는 중요한 특성이다.MDN에서 정의하는 클로저의 개념은 다음과 같다."클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다." 이 문장을 풀어서 알아보자. 🔎 렉시컬 스코프javascript 엔진은 함수가 어디서 호출했는지가 아닌, 함수를 어디에 정의했는지에 따라 상의 스코프를 결정한다.이를 렉시컬 스코프(=정적 스코프)라고 한다. 함수의 상위 스코프는 함수를 정의한 위치에 의해 정적으로 결정되고, 변하지 않는다. 예를 들어 다음의 코드를 보면const x = 1;function outerFunc() { const x = 10; function innerFunc() { console... 2025. 7. 9.
[JS] 실행 컨텍스트, 렉시컬 환경 실행 컨텍스트(Execution Context)실행할 코드에 제공할 환경 정보들을 모아놓은 객체를 말한다.  소스코드의 타입먼저, ECMAScript 상양은 소스코드를 4가지 타입으로 구분한다. 각각은 소스코드의 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르다.  전역 코드 -> 전역 실행 컨텍스트최상위 스코프인 전역 스코프를 생성한다. var 키워드로 선언된 전역 변수와 함수 선언문으로 정의된 전역 함수를 전역 객체 프로퍼티 / 메서드로 바인딩, 참조하도록 한다.함수 코드 -> 함수 실행 컨텍스트지역 스코프를 생성한다.지역 변수, 매개변수, arguments 객체를 관리해야 한다.지역 스코프를 전역 스코프에서 시작하는 스코프 체인의 일원으로 연결해야 한다.eval 코드 -> eval 실.. 2024. 7. 7.