코어 자바스크립트

    코어 자바스크립트 - 클래스

    이 챕터를 읽고 난 후 다음의 질문에 답할 수 있어야 한다. 클래스와 인스턴스란 스태틱 및 인스턴스 멤버 in JS 상위 클래스의 인스턴스를 부여함으로써 상속을 할 때 발생할 수 있는 문제는 ES6 이전의 상속 ES6 클래스 상속 클래스 클래스는 계급, 집단, 집합 등으로 번역된다. 객체지향 프로그래밍에서의 클래스도 동일한 의미를 갖고 있다. 클래스는 상대적이고 추상적인 개념이다. 음식이라는 카테고리가 있다면, 그 하위 분류로는 중식, 양식, 한식 등이 있을 것이다. 여기서 음식은 상위 클래스이고 중식, 양식, 한식은 각각의 서브 클래스이다. 더 구체적으로 짜장면, 짬뽕 등과 같은 각각의 개체는 인스턴스라고 할 수 있다. 인스턴스란 특정 클래스의 속성을 지니는 구체적인 예시 또는 개체를 의미한다. 범주와..

    코어 자바스크립트 - 프로토 타입

    이 챕터를 읽고 난 후 다음의 질문에 답할 수 있어야 한다. 프로토타입이란 무엇인가 프로토타입을 참조하는 인스턴스의 속성은 메서드 오바라이드란 프로토타입 체인이란 프로토타입의 개념 자바스크립트는 프로토타입 기반의 언어다. 자바스크립트의 모든 객체들은 어떤 객체를 원형으로 삼고 이를 복제(참조)한다. 객체에 복제되는 속성과 메서드는 자신이 원형으로 삼고 있는 객체의 prototype 속성에 정의되어 있다. const instance = new Constructor(); 어떤 생성자 함수를 new 연산자와 함께 호출하면 Constructor에 정의된 내용을 바탕으로 인스턴스가 생성된다. 이때 인스턴스에는 __proto__라는 속성이 부여된다. __proto__는 Constructor의 prototype을 참..

    코어 자바스크립트 - 클로저

    복습의 목적으로 정재남님의 저서 '코어 자바스크립트'를 읽고 정리한 글입니다. 더 자세하고 정확한 내용은 책을 참고하시길 바랍니다. 이 챕터를 읽고 난 후 다음의 질문에 답할 수 있어야 한다. 클로저란 무엇인가 클로저는 언제 발생하는가 클로저를 어떻게 제거할 수 있는가 클로저를 어떻게 활용할 수 있나 정보은닉이란 무엇인가 접근 권한을 어떻게 분류할 수 있는가 자바스크립트에서 어떻게 접근 권한을 구분 지어줄 수 있는가 부분 적용 함수란 무엇인가 Symbol이란 무엇인가 커링이란 무엇인가? 클로저의 정의 MDN은 다음과 같이 클로저를 정의하고 있다. 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다. 컨텍스트 A가 있고 A는 내부 함수 B를 갖는다고 가정..

    코어 자바스크립트 - 콜백 함수

    이 챕터를 읽고 다음의 질문에 답할 수 있어야 한다. 콜백 함수란 무엇인가? 콜백 함수의 제어권은? 콜백 함수로 전달된 메서드 내부의 this가 참조하는 객체는? callback 함수 내부에 this를 바인딩하는 방법은 어떤 것들이 있는가? 콜백 지옥이란 무엇인가? 비동기적 코드란 무엇인가? 콜백 지옥을 해결하기 위한 방법들에는 어떤 것들이 있는가? Promise란? Generator란? async/await란? 콜백 함수란 다른 코드의 인자로서 넘겨주는 함수 콜백 함수의 제어권 콜백 함수의 제어권은 콜백 함수를 전달받아 사용하는 코드에서 갖는다. setInterval(cb, 300); 여기서, 콜백 함수 cb의 제어권은 setInterval이 갖는다. 콜백 함수의 this 콜백 함수는 말 그대로 함수로..

    코어 자바스크립트 - this

    이 챕터를 읽고 난 후 다음의 질문에 답할 수 있어야 한다. this란 무엇인가? this가 참조하는 대상은 어떻게 결정되는가? 컨텍스트에 따라 this가 참조하는 객체는 어떻게 달라지는가? this를 바인딩하려면 어떤 메서드를 써야 하는가? call/apply 메서드를 어떻게 활용할 수 있는가? 화살표 함수에서 this는 무엇을 참조하는가? this 입문자의 입장에서 this를 활용하게 되는 경우는 많지 않았다. 낯설기 때문에 this에 대한 개념을 공부할 때면 항상 느껴지는 불편함이 있다. 하지만 여기저기서 this가 자주 언급되는 것으로 봐서 확실히 짚고 넘어갈 필요가 있어 보인다. 이 책에서도 this에 대해 상세히 다루고 있다. this는 특정 객체를 가리키는 일종의 속성이라고 할 수 있다. 그..

    코어 자바스크립트 - 실행 컨텍스트

    복습의 목적으로 정재남님의 저서 '코어 자바스크립트'를 읽고 정리한 글입니다. 더 자세하고 정확한 내용은 책을 참고하시길 바랍니다. 이 챕터를 읽고 난 후 다음의 질문에 답할 수 있어야 한다. 자바스크립트 환경에서 실행 컨텍스트란 무엇인가? 활성화된 실행 컨텍스트에 어떤 정보가 수집되는가? VriableEnvironment와 LexicalEnviroment는 무엇이고 어떤 차이가 있는가? environmentRecord는 무엇이고 호이스팅과 어떤 관련이 있는가? 함수선언문과 함수표현식의 차이는 무엇인가? 스코프와 스코프 체인이란 무엇인가? 변수 은닉화란 무엇인가? 실행 컨텍스트란 실행 컨텍스트란 실행할 코드에 제공되는 환경 정보를 모아놓은 객체이다. 동일한 환경에 있는 코드를 실행할 때 필요한 환경 정보..

    코어 자바스크립트 - 데이터 타입

    복습의 목적으로 정재남님의 저서 '코어 자바스크립트'를 읽고 정리한 글입니다. 더 자세하고 정확한 내용은 책을 참고하시길 바랍니다. 질문 이 챕터를 읽고 난 후, 다음 질문에 답할 수 있어야 한다. 자바스크립트의 자료형은 어떻게 분류할 수 있는가? 숫자 또는 문자열의 데이터를 위해 몇 바이트의 메모리가 확보되는가? 변수는 무엇이고 식별자란 무엇인가? (데이터 타입에 따라) 데이터는 어떻게 메모리에 할당되는가? 변수와 상수을 구분짓는 특징은 무엇인가? 불변성이란 무엇인가? 메모리에 남아있는 미사용 데이터는 어떻게 처리되는가? 기본형 데이터를 갖는 변수 복사, 참조형 데이터를 갖는 변수 복사에는 어떤 차이가 있는가? 얕은 복사와 깊은 복사의 차이는 무엇인가? 불변 객체를 어떻게 만들 수 있는가? undefi..