[JavaScript]
기초
- [JS] Js기초
- [JS] Js기초 변수
- [JS] Js기초 자료형
- [JS] Js기초 형변환
- [JS] Js기초 연산자
- [JS] Js기초 반복문
- [JS] Js기초 switch
- [JS] Js기초 function
- [JS] Js기초 객체
- [JS] Js기초 배열
중급
- [JS] Js중급 호이스팅(Hoisting)과 TDZ(Temporal Dead Zone)
- [JS] Js중급 생성자함수
- [JS] 객체 메소드(Object methods), 계산된 프로퍼티(Computed property)
- [JS] 심볼(Symbol)
- [JS] WeakMap WeakSet
- [JS] 숫자, 수학 method (Number, Math)
- [JS] 문자열 메소드(String methods)
- [JS] 배열 메소드(Array methods)
- [JS] 구조 분해 할당 (Destructuring assignment)
- [JS] 매개변수 리스트와 전개 문법(Rest parameters and spread syntax)
- [JS] 클로저(Closure)
- [JS] setTimeout / setInterval
- [JS] call / apply / bind
- [JS] 상속, 프로토타입(Prototype)
- [JS] 클래스(Class)
- [JS] 클로미스(Promise)
- [JS] 비동기 처리(Async/Await)
- [JS] Generator
- [JS] 메모리 릭(Memory Leak)
1. JavaScript란?
JavaScript는 동적 프로그래밍 언어로, 클라이언트 및 서버 측에서 모두 사용할 수 있습니다.
- 인터프리터 언어: 컴파일 없이 실행 환경에서 바로 실행됩니다.
- 멀티 패러다임: 객체지향, 함수형, 절차적 프로그래밍 스타일을 지원합니다.
- 동적 타이핑: 변수의 타입을 명시하지 않고 사용할 수 있습니다.
- 브라우저 중심: HTML/CSS와 함께 웹의 3대 핵심 기술 중 하나로, 브라우저에서 실행되며 DOM 조작, 이벤트 처리, 애니메이션 등 다양한 기능을 제공합니다.
2. JavaScript의 주요 특징
-
싱글 스레드 & 비동기 처리
- 자바스크립트는 기본적으로 싱글 스레드에서 동작하지만, 비동기 작업(예: 콜백, 프로미스,
async/await
)을 통해 효율적으로 작업을 처리합니다. - 이벤트 루프와 콜 스택의 원리를 이해하면 비동기 동작 방식을 깊이 이해할 수 있습니다.
- 자바스크립트는 기본적으로 싱글 스레드에서 동작하지만, 비동기 작업(예: 콜백, 프로미스,
-
프로토타입 기반 객체지향
- 클래스가 아닌 프로토타입 체인을 통해 객체 상속을 구현합니다.
- 최근에는
class
문법이 추가되어 객체지향 프로그래밍이 더 쉬워졌습니다.
-
동적 타입 시스템
- 변수의 타입이 실행 중에 결정됩니다. 예를 들어, 같은 변수에 문자열, 숫자 등을 자유롭게 할당할 수 있습니다.
1 2
let variable = "string"; variable = 42; // 문제없이 동작
- 변수의 타입이 실행 중에 결정됩니다. 예를 들어, 같은 변수에 문자열, 숫자 등을 자유롭게 할당할 수 있습니다.
-
함수 일급 객체
- 함수가 변수에 할당되거나 다른 함수의 매개변수로 전달될 수 있습니다.
- 클로저, 고차 함수 등의 개념이 이를 기반으로 합니다.
-
ES6+ 이후의 변화
- 최신 자바스크립트는 이전에 비해 문법적으로 강력하고 간결해졌습니다.
예:let
,const
, 화살표 함수,async/await
, 모듈 시스템(import/export
) 등.
- 최신 자바스크립트는 이전에 비해 문법적으로 강력하고 간결해졌습니다.
3. 기본 학습 로드맵
기초부터 탄탄히 쌓기 위해 아래 단계를 따라보는 것을 추천합니다.
- 기본 문법
- 데이터 타입, 변수, 조건문, 반복문
- 함수와 스코프
- 함수 선언 방식, 스코프 체인, 클로저
- 객체와 배열
- 프로토타입, 배열 메서드, 객체 조작
- 비동기 처리
- 콜백, 프로미스,
async/await
, 이벤트 루프
- 콜백, 프로미스,
- ES6+ 최신 문법
- 구조 분해 할당, 템플릿 리터럴, 스프레드 연산자
- 브라우저 환경 이해
- DOM, 이벤트, 로컬 스토리지, API 호출