자바스크립트70 [모던 JS Deep Dive] 27장 - 배열 27.1 배열이란? - 배열의 길이를 나타내는 length 프로퍼티 - 배열을 생성하는 4가지 방법 - 배열 리터럴 - Array 생성자 함수 - Array.of - Array.from - Array.prototype은 배열을 위한 빌트인 메서드 제공 - 객체 vs. 배열 - 객체; 값의 순서 X, length 프로퍼티 X - 배열; 값의 순서 O, length 프로퍼티 O 27.2 자바스크립트 배열은 배열이 아니다 - JS 배열은 배열의 요소가 연속적으로 이어져 있지 않은 Sparse array (희소 배열) - JS 배열은 일반적인 배열의 동작을 흉내 낸 특수한 객체 - JS 배열은 인덱스를 나타내는 문자열을 프로퍼티 키로 가지며, length 프로퍼티 갖는 특수한 객체 (JS 배열의 요소는 사실 프.. 2022. 1. 14. [모던 JS Deep Dive] 26장 - ES6 함수의 추가 기능 26.1 함수의 구분 - ES6 이전 함수는 동일한 함수로 다양한 형태로 호출 가능 (일반 함수, 생성자 함수, 메서드) - 사용 목적에 따라 명확히 구분 안됨 - ES6 이전 모든 함수는 callable 이면서 constructor (객체에 바인딩된 함수, 콜백 함수도 포함) - constructor => 객체에 바인딩된 함수가 prototype 프로퍼티 가지고, 프로토타입 객체도 생성하는 문제 발생 - ES6 이전 메서드는 프로퍼티 값으로 익명 함수 표현식 할당하는 형태임 - ES6에서 함수를 사용 목적에 따라 세가지 종류로 명확히 구분함 - 일반 함수(함수 선언문, 함수 표현식); constructor O, prototype O, super X, arguments O - 메서드; constructo.. 2022. 1. 11. [모던 JS Deep Dive] 25장 - 클래스 25.1 클래스는 프로토타입의 문법적 설탕인가? - JS는 프로토타입 기반의 객체 지향 언어 (클래스 필요없는, class free) - 과거 ES5 생성자 함수와 프로토타입을 이용하여 객체지향 언어의 상속 구현 가능했음 - 클래스는 사실 함수임, 기존 프로토타입 기반 패턴을 클래스 기반 패턴처럼 사용 가능한 문법적 설탕 (Syntactic sugar)이라고도 볼 수 있음 => 새로운 객체 생성 메커니즘으로 보는 것이 적절 - 클래스와 생성자 함수 모두 프로토타입 기반 인스턴스 생성, 하지만 정확히 동일하게 동작하지 않음 - 클래스는 생성자 함수보다 엄격하고, 추가 기능 제공 - ES6 클래스; extends, super 키워드 제공, new 연산자 없이 호출하면 에러 발생, 클래스 호이스팅 발생하지 않.. 2022. 1. 10. [JS 스터디 1기] - 여섯 번째 미팅 2022.01.09.일 오늘 JS 스터디 여섯 번째 미팅을 했습니다. 이번 주차 마지막 개념인 클로저에 대해 다뤘습니다. '클로저'는 보통 MDN 문서에 '함수와 그 함수가 선언된 렉시컬 환경과의 조합이다' 라고 나와 있습니다. 사실 말은 어렵지만 실행 컨텍스트를 그릴 수 있으면 쉽게 이해가 됩니다. 코드 실행 흐름을 관리하는 실행 컨텍스트 스택에서 그 실행 컨텍스트에 대한 코드 실행이 종료되면 콜 스택(실행 컨텍스트 스택)에서 Pop이 이뤄지는데 그 실행 컨텍스트만 Pop 되지 렉시컬 환경까지 모두 바로 사라지지 않습니다. 다른 곳에서 그 렉시컬 환경에 있는 식별자를 참조하게 된다면 그것은 생명 주기가 계속 유지되는데 사실 이 부분만 알고 있어도 클로저는 쉽게 이해할 수 있습니다. 결국 핵심은 실행 컨.. 2022. 1. 9. 이전 1 ··· 6 7 8 9 10 11 12 ··· 18 다음 반응형