클래스(Class) -Core JavaScript

다른 언어의 상속 개념을 흉내 내기위해 자바스크립트 ES6에서 추가된 Class 문법
(내부적으로는 프로토타입을 따름)

자세히 보기

this -Core JavaScript

자바스크립트에서의 this는 어디서든 사용할 수 있습니다.
this는 상황에 따라 참조하는 대상이 달라질 수 있습니다.
함수와 객체(메서드) 구분이 느슨한 자바스크립트에서 이 둘을 구분하는 유일한 기능입니다.

  • this
    • 상황에 따라 달라지는 this
      • 전역 공간에서의 this
      • 메서드로서 호출할 때 메서드 내부의 this
        • 함수 vs 메서드
        • 메서드 내부에서의 this
      • 함수로서 호출할 때 그 함수 내부에서의 this
        • 함수 내부에서의 this
        • 메서드의 내부함수에서의 this
        • 메서드 내부 함수에서의 this를 우회하는 방법
        • this를 바인딩하지 않는 함수
      • 콜백 함수 호출시 그 함수 내부에서의 this
      • Class 함수 내부에서의 this
    • 명시적으로 this를 바인딩하는 방법
      • call 메서드
      • apply 메서드
      • call / apply 메서드의 활용
        • 생성자 내부에서 다른 생성자를 호출
        • 여러 인수를 묶어 하나의 배열로 전달
      • bind 메서드
        • name 프로퍼티
        • 상위 컨텍스트의 this를 내부함수나 콜백 함수에 전달하기
      • 화살표 => 함수의 예외사항
      • 별도의 인자로 this를 받는 경우(콜백 함수 내에서의 this)
    • this 정리
자세히 보기

실행 컨텍스트 -Core JavaScript

실행 컨텍스트(execution context)는 실행할 코드에 제공할 환경 정보를 모아놓은 객체로,
자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념입니다.
자바스크립트는 실행 컨텍스트가 활성화되는 시점에 선언된 변수를 위로 끌어올리고(호이스팅), 외부 환경 정보를 구성하고, this 값을 설정하는 등의 동작을 수행하는데, 이로 인해 다른 언어에서는 발견할 수 없는 특이한 현상들이 발생합니다.

자세히 보기

데이터 타입 -Core JavaScript

자바스크립트가 데이터를 처리하는 과정을 살펴봄으로써
기본형 타입과 참조형 타입이 서로 다르게 동작하는 이유를 이해하고
이를 적절히 활용할 수 있게 되는 것을 목표로 합니다.
나아가 데이터 타입과 관련된 중요한 개념 몇 가지를 추가로 살펴봅니다.

자세히 보기