유려한 자바스크립트: 현대 프로그래밍 입문
현대 프로그래밍을 위한 포괄적인 가이드. 이 과정에서는 기본 프로그래밍 원칙, 자바스크립트 언어 사양, 웹 브라우저 통합 및 노드.js를 이용한 서버 사이드 개발을 다루며, 실제 세계의 다섯 가지 프로젝트 적용 사례를 포함한다.
강좌 개요
📚 콘텐츠 요약
현대 프로그래밍을 위한 자바스크립트 활용 종합 가이드. 이 과정은 기본적인 프로그래밍 원칙, 자바스크립트 언어 명세, 웹 브라우저 통합, 그리고 노드.js를 이용한 서버 사이드 개발을 다루며, 실제 세계의 5개 프로젝트 응용 사례를 포함한다.
자바스크립트 프로그래밍의 핵심에 깊이 있고 우아하게 몰입하는 여정.
저자: 마르인 하브러벡
감사의 말: 454명의 재정 후원자들로부터 지원받음; 일러스트레이션: 와시프 히데르, 맥스 샴티우, 마가리타 마르티네스, 호세 메노르, 짐 티어니, 딜라이 매크레거, 제프 아발론, 토머스 팔레프, 안토니오 페르도모 파스터.
🎯 학습 목표
- 프로그램이 무엇인지 정의하고 컴퓨터 언어에서의 다양한 추상화 수준을 설명할 수 있다.
- 자바스크립트 숫자와 산술 연산자를 사용하여 값을 생성할 수 있다.
- 이름 규칙과 예약어 제한을 준수하며 변수를 선언하고 업데이트할 수 있다.
- 들여쓰기와 주석을 통해 깔끔한 코드를 유지하면서
do반복문,for반복문,switch문을 활용해 견고한 제어 흐름을 구현할 수 있다. - 여러 표기법을 사용하여 함수를 정의하고 호출하며, 매개변수, 선택적 인자, 중첩된 렉시컬 스코프를 처리할 수 있다.
- 재귀, 클로저, 콜 스택 같은 고급 기능 개념을 적용하여 복잡한 알고리즘 문제를 해결할 수 있다.
- 전용 객체 및 배열 메서드를 활용하여 복잡한 데이터 구조와 문자열을 관리할 수 있다.
- 고차원 함수(
filter,map,reduce)를 사용하여 로직을 추상화하고 데이터 변환을 조합할 수 있다. - 프로토타입 체인을 탐색하고 조작하여 구조화되고 재사용 가능한 객체 인스턴스와 다형성 인터페이스를 생성할 수 있다.
- 다형성 인터페이스를 구현하여 복잡한 데이터 시각화(테이블)를 처리할 수 있다.
수업 共 10 课时 · 预计 30.0h
수업
Lesson
This lesson introduces the concept of programming as the art of subduing complexity by creating immaterial logic that directs physical hardware. Students will learn the fundamental structure of JavaScript, including the roles of variables, control flow, and the distinction between statements and expressions.
This lesson explores advanced control flow in JavaScript, focusing on sophisticated iteration patterns like for loops, do-while loops, and multi-way branching with switch statements. Students will learn to manage program execution precisely using break and continue keywords, modular arithmetic, and nested loops to solve complex algorithmic challenges.
This lesson explores the concept of abstraction in programming, focusing on how to transition from imperative, hardware-level logic to declarative, human-readable code. Students will learn to implement and refine flexible functions, such as range and sum, while analyzing the performance trade-offs associated with the abstraction tax.
This lesson explores interface-based polymorphism by defining a standardized Table Interface that allows layout engines to process diverse data types through a consistent set of methods. Students will learn to implement flexible, decoupled systems by using defensive programming techniques and interface contracts to manage object rendering and alignment.
This lesson introduces Regular Expressions (RegExp) in JavaScript, covering how to define patterns using literal notation or constructors and how to use the .test() method for validation. Students will learn to manage case sensitivity, handle special characters through escaping, and apply these techniques to dynamic string matching tasks.
This lesson explores the evolution of JavaScript module systems, focusing on how to prevent namespace pollution through techniques like Immediately Invoked Function Expressions (IIFEs) and closures. Students will learn to design robust, encapsulated code by creating private scopes and structured public interfaces for their modules.
AI020: Events and Interactive Platforms (Lesson 7) explores the technical foundations of building dynamic web experiences through DOM manipulation, regular expressions, and event handling. Students will learn to transform static content into interactive environments by implementing efficient workflows for real-time feedback and user input tracking.
This lesson explores the performance advantages of the HTML5 Canvas API over SVG for high-density graphics by utilizing a 2D rendering context to bypass DOM overhead. Students will also examine the role of the transport layer in web applications, specifically analyzing the performance trade-offs between TCP and UDP for data transmission.
This lesson explores the necessity of asynchronous programming in web development to prevent UI freezing caused by synchronous I/O operations. Students will learn to implement event-driven patterns and browser persistence APIs to maintain responsive, high-performance applications during network-intensive tasks.
This lesson explores advanced Canvas API techniques for building interactive drawing tools, focusing on state management, composite operations, and mathematical constraints. Students will learn to implement dynamic features like spray brushes and erasers by manipulating canvas context properties and handling mouse events through higher-order patterns.