JS
JavaScript 본질 원리
타입 시스템, 스코프와 클로저, 실행 컨텍스트, 프로토타입, this 바인딩 등 JavaScript가 작동하는 원리를 학습합니다.
5개 카테고리
1
타입 시스템과 형변환
동적 타입, 원시/참조 타입, 암묵적 형변환 등 JavaScript 타입 시스템의 원리를 학습합니다.
- 01 JavaScript가 동적 타입 언어인 의미는?입문 15분
- 02 원시 타입과 참조 타입의 근본적 차이는?입문 15분
- 03 typeof null이 object인 이유는?입문 15분
- 04 암묵적 타입 변환은 왜 일어날까?중급 15분
- 05 == vs === 의 철학적 차이는?중급 15분
- 06 Falsy 값이 6개인 이유는?입문 15분
- 07 Symbol이 도입된 이유는?중급 15분
- 08 BigInt가 필요한 이유는?중급 15분
- 09 래퍼 객체가 존재하는 이유는?중급 15분
- 10 NaN이 자기 자신과 같지 않은 이유는?중급 15분
2
스코프와 클로저
렉시컬 스코프, 함수/블록 스코프, 클로저의 동작 원리를 이해합니다.
- 01 렉시컬 스코프란 무엇일까?입문 15분
- 02 var, let, const의 스코프 차이는 왜 생겼을까?입문 15분
- 03 호이스팅이 존재하는 이유는?중급 15분
- 04 TDZ(Temporal Dead Zone)가 필요한 이유는?중급 15분
- 05 클로저는 왜 발생할까?중급 15분
- 06 클로저가 메모리를 유지하는 원리는?중급 15분
- 07 모듈 패턴에서 클로저의 역할은?중급 15분
- 08 루프에서 클로저 문제가 생기는 이유는?중급 15분
- 09 클로저와 메모리 누수의 관계는?심화 15분
- 10 클로저 없이 private을 구현할 수 있을까?심화 15분
3
실행 컨텍스트
콜 스택, 실행 컨텍스트 생성 과정, 호이스팅의 실체를 학습합니다.
- 01 실행 컨텍스트란 무엇일까?중급 15분
- 02 전역 컨텍스트가 특별한 이유는?중급 15분
- 03 콜 스택의 역할은 무엇일까?중급 15분
- 04 렉시컬 환경의 구조는?중급 15분
- 05 Variable Environment와 Lexical Environment의 차이는?중급 15분
- 06 스코프 체인은 어떻게 형성될까?중급 15분
- 07 eval이 스코프에 미치는 영향은?심화 15분
- 08 strict mode가 실행 컨텍스트에 미치는 영향은?중급 15분
- 09 화살표 함수의 실행 컨텍스트 특징은?중급 15분
- 10 블록 스코프가 실행 컨텍스트에 미치는 영향은?중급 15분
4
프로토타입 시스템
프로토타입 체인, 상속 메커니즘, class 문법의 본질을 이해합니다.
- 01 JavaScript가 프로토타입 기반인 이유는?입문 15분
- 02 __proto__와 prototype의 차이는?중급 15분
- 03 프로토타입 체인의 종점은 어디일까?중급 15분
- 04 메서드 공유의 원리는?중급 15분
- 05 Object.create의 설계 의도는?중급 15분
- 06 constructor 프로퍼티의 역할은?중급 15분
- 07 프로토타입 변경이 위험한 이유는?중급 15분
- 08 hasOwnProperty가 필요한 이유는?중급 15분
- 09 내장 프로토타입 확장이 나쁜 이유는?심화 15분
- 10 프로토타입 오염 공격이란?심화 15분
5
this 바인딩
호출 방식에 따른 this 결정 규칙과 바인딩 우선순위를 학습합니다.
- 01 this가 동적으로 결정되는 이유는?중급 15분
- 02 기본 바인딩 규칙은?입문 15분
- 03 암시적 바인딩은 어떻게 동작할까?중급 15분
- 04 암시적 바인딩 손실이 발생하는 경우는?중급 15분
- 05 명시적 바인딩(call, apply, bind)의 차이는?중급 15분
- 06 new 바인딩의 우선순위는?중급 15분
- 07 화살표 함수의 렉시컬 this란?중급 15분
- 08 이벤트 핸들러에서 this가 바뀌는 이유는?중급 15분
- 09 바인딩 우선순위 규칙은?심화 15분
- 10 this를 예측 가능하게 만드는 패턴은?중급 15분