📝

목차

들어가며

머리말과 저자목록
Notion 링크, PDF 파일 및 QR 코드

Chapter 1. 자바스크립트 개요

  1. 자바스크립트 개요
    1. 1-1. 자바스크립트
      1-2. 자바스크립트의 역사
      1-3. ECMAScript
      1-4. 자바스크립트의 특징
      1-4-1. 동적 언어
      1-4-2. 인터프리터 언어
      1-4-3. 프로토타입 기반

Chapter 2. 개발 환경

  1. 개발 환경
    1. 2-1. 개발 환경 구축
      2-1-1. 개발 환경 세팅
      2-1-1-1. Visual Studio Code 설치
      2-1-1-2. Node.js및 npm 설치
      2-1-1-3. VSCode에서 유용한 확장 기능 설치

Chapter 3. 변수

3-1. 변수란 무엇인가?
3-1-1. 변수와 식별자
3-1-2. 식별자 네이밍 규칙
3-1-3. 네이밍 컨벤션
3-2. 변수의 선언과 할당
3-2-1. 변수의 선언
3-2-2. 데이터 할당

Chapter 4. 타입

4-1. 숫자 타입
4-1-1. parseInt()
4-1-2. isNaN()
4-1-3. [+] 단항 산술 연산자
4-1-4. [*] 산술 연산자
4-1-5. Math 내장 객체
4-2. 문자열 타입
4-2-1. indexOf()
4-2-2. replace()
4-2-3. slice()
4-2-4. split()
4-2-5. toLowerCase(), toUpperCase()
4-2-6. trim()
4-3. 불리언 타입
4-3-1. 관계 연산자
4-3-2. 논리 연산자
4-4. undefined 타입
4-5. null 타입
4-6. 심벌 타입

Chapter 5. 제어문

5-1. 조건문
5-1-1. if , if else 문
5-1-2. switch 문
5-1-3. 삼항 연산자
5-2. 반복문
5-2-1. for 문
5-2-2. while 문
5-2-3. break 문과 continue 문

Chapter 6. 배열

6-1. 배열
6-1-1. 배열의 특징
6-1-2. 배열의 요소에 접근하기
6-1-3. 배열의 요소 길이 확인하기
6-1-4. 다차원 배열
6-2. 배열의 메서드
6-2-1. shift()와 unshift()
6-2-2. push()와 pop()
6-2-3. splice()
6-2-4. slice()
6-2-5. sort()
6-2-6. forEach()
6-2-7. concat()
6-2-8. join()

Chapter 7. 함수

7-1. 함수 소개
7-1-1. 함수의 정의와 역할
7-1-2. 함수의 선언과 호출
7-1-3. 기본값 매개변수와 나머지 매개변수
7-2. 함수를 정의하는 방법
7-2-1. 함수 선언문
7-2-2. 함수 표현식
7-2-3. 화살표 함수
7-2-4. 함수 호이스팅
7-3. 여러 가지 함수
7-3-1. 즉시 실행 함수
7-3-2. 재귀 함수
7-3-3. 콜백 함수

Chapter 8. 스코프

8-1. 스코프란?
8-2. var 키워드
8-2-1. 키워드 없이 선언과 할당 가능
8-2-2. 중복 선언 가능
8-2-3. 변수 호이스팅
8-2-4. 함수 레벨 스코프
8-3. let, const 키워드
8-3-1. 중복 선언 불가능
8-3-2. 블록 레벨 스코프
8-3-3. const 키워드
8-4. 스코프 체인
8-4-1. 전역 스코프와 지역 스코프
8-4-2. 렉시컬 환경
8-5. 전역 변수
8-5-1. 가비지 컬렉션
8-5-2. 전역 변수의 문제점

Chapter 9. 호이스팅

9-1. 호이스팅이란?
9-1-1. 정의와 개념 9-1-2. 호이스팅이 발생하는 이유
9-2. 변수 호이스팅
9-2-1. var키워드와 호이스팅 9-2-2. let과 const 키워드와 호이스팅
9-3. 함수 호이스팅
9-3-1. 함수 선언식과 함수 표현식의 차이 9-3-2. 함수 선언식의 호이스팅 9-3-3. 함수 표현식의 호이스팅
9-4. 클래스의 호이스팅
9-4-1. 클래스의 호이스팅

Chapter 10. 생성자

10-1. 생성자는 왜 쓰는가
10-2. 생성자의 아규먼트
10-2-1. 가변적인 수의 아규먼트를 처리하는 방법

Chapter 11. 프로토타입

11-1. 프로토타입 사용 사례
11-2. 프로토타입의 정의
11-2-1. 생성자 함수와 프로토타입
11-2-2. 생성자와 프로토
11-2-3. 같은 값을 가진 프로토
11-2-4. 프로토타입 간의 소통 공유 범위
11-3. 현업에서 프로토타입과 생성자를 사용 방법

Chapter 12. 실행컨텍스트

12-1. 실행컨텍스트란?
12-1-1. 정의와 개념 12-1-2. 실행 컨텍스트의 필요성 12-1-3. 렉시컬 스코핑(lexical scoping) 12-1-4. 실행 컨텍스트의 원칙
12-2. 콜 스택(Call Stack)
12-2-1. 스택 구조 파악하기 12-2-2. 스택의 이해를 위한 재귀함수 예시
12-3. 실행 컨텍스트의 세부 사항 이해
12-3-1. 실행 컨텍스트의 생성시점 12-3-2. 실행 컨텍스트의 단계
12-4. 실행 컨테스트 속의 정보
12-4-1. VariableEnvironment 12-4-2. LexicalEnvironment 12-4-3. ThisBinding
12-5. 실행 컨텍스트 예시

Chapter 13. 클로저

13-1. 클로저란 무엇인가?
13-1-1.함수 객체의 내부 슬롯
13-2. 클로저와 일반 함수 비교
13-2-1. 일반 함수의 특징
13-2-2. 클로저의 특징
13-3. 클로저의 다양한 활용
13-3-1. 데이터 은닉
13-3-2. 이벤트 핸들러와 콜백에서의 상태유지
13-3-3. 함수 팩토리
13-3-4. 모듈 패턴
13-3-5. setTimeout 과 setInterval에서의 클로저 활용
13-3-6. 사용자 테마 설정 유지를 위한 클로저 활용 사례
13-4. 클로저의 성능과 최적화
13-4-1. 클로저와 메모리 이슈
13-4-2. 클로저의 사용 최적화
13-4-3. 성능 최적화 팁
13-4-4. 클로저를 이용한 반복문과 콜백에서 성능 최적화
13-5. 클로저의 장단점
13-5-1. 장점과 활용 사례
13-5-2. 단점 및 주의 사항

Chapter 14. 클래스

1-1. 객체지향 프로그래밍 소개
1-1-1. 객체지향 프로그래밍의 개념
1-2. 클래스 정의
1-2-1. 클래스의 개념
1-2-2. 클래스 기본 문법
1-2-3. 클래스와 객체에 관한 오해
1-2-4. 클래스 호이스팅
1-3. 메서드
1-3-1. 메서드의 종류
1-3-2. private 프로퍼티와 메서드
1-4. 클래스의 상속과 확장
1-4-1. extends 키워드
1-4-2. super

Chapter 15. 자바스크립트와 브라우저

  1. 자바스크립트와 브라우저
    1. 15-1. 브라우저란
      15-1-1. 브라우저의 기능적 이해
      15-1-1. 브라우저의 구조적 이해
      15-2. 브라우저의 렌더링 과정
      15-2-0. 통신
      15-2-1. 파싱과 DOM 생성
      15-2-2. CSS 파싱과 CSSOM 생성
      15-2-2. CSS 파싱과 CSSOM 생성
      15-2-3. 렌더 트리 구축
      15-2-4. 자바스크립트 파싱과 실행
      15-2-5. 배치 및 리플로우와 리페인트

Chapter 16. DOM

16-1. 돔(DOM)의 기본 개념
16-1-1. 돔의 역할과 기본 구조
16-2. DOM 조작과 변형
16-2-1. 요소 선택과 변경
16-2-2. 동적으로 요소 생성 및 제거
16-2-3. DOM 노드 탐색
16-2-4. 스타일 변경과 클래스 조작

Chapter 17. 이벤트

17-1. 이벤트 기본 개념
17-1-1. 이벤트의 의미와 중요성
17-2. 이벤트 핸들링
17-2-1. 이벤트 리스너 등록 및 삭제
17-2-2. 이벤트 타입과 발생 조건
17-2-3. HTML 속성과 JavaScript를 활용한 이벤트 핸들링
17-3. 이벤트 객체와 정보 활용
17-3-1. 이벤트 타겟과 현재 요소 파악
17-3-2. 기본 동작 제어와 이벤트 전파 이해
17-4. 이벤트 위임 패턴
17-4-1. 이벤트 위임 패턴 개념 및 장점
17-4-2. 이벤트 버블링과 캡처링

Chapter 18. 비동기

18-1. 동기와 비동기 정의
18-1-1. 동기
18-1-2. 비동기
18-2. 가장 많이 사용하는 비동기 처리
18-2-1. call back
18-2-2. promise
18-2-2-1. Thenable 18-2-2-2. Promise.all() 18-2-2-3. Promise.race() 18-2-2-4. for-awit-of
18-2-3. async/await
18-3. 병렬 비동기 처리란
18-3-1. Web Workers 18-3-2. SharedArrayBuffer 18-3-3. Atomics