본문 바로가기
반응형

Frontend34

클로저 (모던 자바스크립트 Deep Dive) 함수형 프로그래밍 언어에서 사용되는 중요한 특성이며 자바스크립트 고유의 개념은 아니다. 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. From. MDN 24.1 렉시컬 스코프 함수가 어디서 호출되었는지가 중요하지 않고, 함수가 어디에서 정의되었는지에 따라 상위 스코프를 결정한다. 이것이 렉시컬 스코프이다. 스코프의 실체는 실행 컨텍스트의 렉시컬 환경이고, 렉시컬 환경은 자신의 외부 렉시컬 환경에 대한 참조를 통해 상위 렉시컬 환경과 연결되고, 이것은 스코프 체인이며 외부 렉시컬 환경에 대한 참조는 함수가 정의된 위치에 의해 결정된다. 24.2 함수 객체의 내부 슬롯 [[Environment]] 함수가 정의되어 평가되는 시점에서 상위 스코프를 기억해야한다. 이것이 내부 슬롯 [[Environ.. 2024. 4. 16.
실행 컨텍스트 (모던 자바스크립트 Deep Dive) 실행 컨텍스트의 개념을 이해하면 자바스크립트의 전반적인 이론들을 이해할 수 있다. 꼭 완벽 이해해보자..! 23.1 소스코드의 타입 소스코드에 따라 실행 컨텍스트를 생성하는 과정이 다 다르다. 코드가 평가될 때, 실행 컨텍스트를 생성한다. 전역 코드 전역 스코프 생성 전역 변수 관리 함수 코드 지역 스코프 생성 지역 변수, 매개변수, 인수 관리 스코프 체인을 연결해야한다. eval 코드 자신만의 실행 컨텍스트 생성 이거 사용하지 말자. 모듈 코드 독립적인 모듈 스코프 생성 24.2 소스코드의 평가와 실행 평가 과정에서 실행 컨텍스트를 생성하고, 식별자를 키로 실행 컨텍스트가 관리하는 스코프에 등록 스코프 : 렉시컬 환경의 환경 레코드 평가가 끝나면 런타임이 시작되고, 실행에 필요한 정보들을 실행 컨텍스트.. 2024. 4. 16.
this (모던 자바스크립트 Deep Dive) 22.1 this 키워드 생성자 함수를 선언할 때, 인스턴스가 만들어지기도 전에 어떻게 인스턴스를 가리켜야할까? 자신이 속한 객체 또는 생성자 함수가 생성할 인스턴스를 가리키는 자기 참조 변수 그렇기 때문에 자신이 속한 객체 또는 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. 엔진에 의해 암묵적으로 생성된다. 함수 호출 방식에 따라 동적으로 결정된다. this는 키워드이지만 식별자 역할을 하며 this가 가리킬 객체를 바인딩한다. this는 어디서든 참조가 가능하다. 📎 this의 장소 의미 전역 window 일반 함수 window 객체의 메서드 호출한 객체 생성자 함수 인스턴스 일반 함수 (strict mode) undefined 22.2 함수 호출 방식과 this 바인딩 함수 호출 방식에 따라 th.. 2024. 4. 16.
빌트인 객체 (모던 자바스크립트 Deep Dive) 21.1 자바스크립트 객체의 분류 표준 빌트인 객체 ECMAScript 사양에 정의된 객체 전역 객체의 프로퍼티 호스트 객체 실행 환경에 따라 추가로 제공되는 객체 브라우저 또는 Node.js 사용자 정의 객체 21.2 표준 빌트인 객체 모두 인스턴스를 생성할 수 있는 생성자 함수 객체 프로토타입 메서드와 정적 메서드 제공 Math, Reflect, JSON 제외 얘네는 정적 메서드만 제공 21.3 원시값과 래퍼 객체 원시값은 객체가 아니지만 객체처럼 동작한다. 엔진에서 암묵적으로 연관된 객체를 생성하여 해당 프로퍼티에 접근/호출 후 원시값으로 되돌린다. 사용된 임시 객체는 가비지 콜렉터가 주서간다. 엔진에 의해 임시로 객체가 되는 친구들을 래퍼 객체라고 부른다. Symbol()은 생성자 함수가 아니므로.. 2024. 4. 16.
728x90
반응형