본문 바로가기

JS31

모던 자바스크립트 Deep Dive - 27장 배열 ~ 32장 String 27장 배열 희소배열: length와 배열 요소의 개수가 일치x. new Array(1, 2, 3); // → [1, 2, 3] Array.of(1, 2, 3); // → [1, 2, 3] isArray 인수가 배열이면 true, 아니면 false 반환. 27-43 // true Array.isArray([]); Array.isArray([1, 2]); Array.isArray(new Array()); // false Array.isArray(); Array.isArray({}); Array.isArray(null); Array.isArray(undefined); Array.isArray(1); Array.isArray('Array'); Array.isArray(true); Array.isArray(fa.. 2024. 1. 27.
모던 자바스크립트 Deep Dive - 클로저 24장 클로저 렉시컬 스코프 상위 스코프에 대한 참조는 함수 정의가 평가되는 시점에 함수가 정의된 환경(위치)에 의해 결정된다. 함수 객체의 내부 슬롯 [[Environment]] 함수는 자신이 정의된 환경, 즉 상위 스코프를 기억해야함. 이를 위해 함수는 자신의 내부 슬롯 [[Environment]]에 자신이 정의된 환경, 즉 상위 스코프의 참조를 저장함. 클로저와 렉시컬 환경 24-05 const x = 1; // ① function outer() { const x = 10; const inner = function () { console.log(x); }; // ② return inner; } // outer 함수를 호출하면 중첩 함수 inner를 반환한다. // 그리고 outer 함수의 실행 컨텍.. 2024. 1. 19.
모던 자바스크립트 Deep Dive - 실행 컨텍스트 23장 실행 컨텍스트 소스코드의 타입 4가지 타입의 소스코드는 실행 컨텍스트를 생성하고 타입에 따라 실행 컨텍스트 생성 과정, 관리 내용이 다름. 1) 전역 코드 전역 스코프 생성 전역 실행 컨텍스트 생성 2) 함수 코드 지역 스코프 생성 함수 실행 컨텍스트 생성 3) eval 코드 4) 모듈 코드 독립적인 모듈 스코프 생성 모듈 실행 컨텍스트 생성 소스코드의 평가와 실행 JS엔진은 소스코드를 소스코드 평가 와 소스코드 실행 과정으로 나누어 처리함 평가 과정 : 실행 컨텍스트 생성, 선언문(변수, 함수)만 먼저 실행하여 생성된 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 스코프에 등록함. 평가 과정 후 : 선언문 제외 소스코드 순차적으로 실행. === 런타임 실행소스코드 실행에 필요한 정보(변수,.. 2024. 1. 17.
모던 자바스크립트 Deep Dive - this 22장 this this 키워드 메서드는 자신이 속한 객체의 상태(프로퍼티)를 참조하고 변경할 수 있어야함. ⇒ 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야함. 객체 리터럴 방식으로 생성한 객체는 메서드 내부에서 자신이 속한 객체를 가리키는 식별자를 재귀적으로 참조 가능. 예제의 객체리터럴은 circle에 할당되기 직전에 평가됨.⇒ getDiameter메서드가 호출되는 시점에는 이미 객체 리터럴의 평가가 완료되어 객체 생성되어있음. ⇒ 메서드 내부에서 circle 참조 가능. 22-01 const circle = { // 프로퍼티: 객체 고유의 상태 데이터 radius: 5, // 메서드: 상태 데이터를 참조하고 조작하는 동작 getDiameter() { // 이 메서드가 자신이 속한 객체의 .. 2024. 1. 16.
모던 자바스크립트 Deep Dive - 빌트인 객체 21장 빌트인 객체 자바스크립트 객체의 분류 표준 빌트인 객체 : ECMAScript 사양에 정의. 앱 전역의 공통 기능 제공. 별도 선언 없이 전역 변수처럼 언제나 참조 가능. 호스트 객체 : ECMAScript 사양에 정의x. 자바스크립트 실행환경(브라우저)에서 추가로 제공하는 객체. 사용자 정의 객체 : 표준 빌트인 객체와 호스트 객체처럼 기본 제공되는 객체가 아님. 사용자가 직접 정의한 객체 표준 빌트인 객체 Object, String, Number, Boolean, Symbol, Date, Math, Array, … 인스턴스를 생성할 수 있는 생성자 함수 객체.(Math, Reflect, JSON 제외) 프로토타입 메서드, 정적 메서드를 제공. 생성자 함수로 호출하여 인스턴스 생성 가능 21-0.. 2024. 1. 15.
모던 자바스크립트 Deep Dive - 생성자 함수에 의한 객체 생성 17장 생성자 함수에 의한 객체 생성 객체 생성 방식 중에 객체 리터럴에 의한 객체 생성 방식은 가장 일반적이고 간단한 객체 생성 방식이다. 예제 var person = { name: 'Lee', sayHello: function() { console.log('Hello! My name is ${this.name}.'); } } 객체 생성 방식 중에서 생성자 함수를 사용하여 객체를 생성하는 방식과 리터럴 방식과의 장단점을 살펴보자. Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체 생성 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. 예제 // 빈 객체 생성 const person = new Object(); // 프로.. 2024. 1. 14.