1. 데이터 타입
- 원시 타입(Primitive)
string, number, boolean, null, undefined, symbol, bigint 값 자체가 저장되고 불변(immutable)함
- 참조 타입(Reference)
object, array, function 등 참조(주소)가 저장되며 가변(mutable)함
- typeof 연산자
변수의 데이터 타입을 문자열로 변환
- Truthy / Falsy 값
조건문에서 참/거짓으로 평가되는 값.
Falsy → false, 0, '', null, undefined, NaN
(나머지는 전부 truthy)
2. 연산자
- 동등 비교(==) : 타입 변환 후 값 비교
- 일치 비교(===) : 타입 변환 없이 값 비교
- Nullish 병합(??) : 좌항이 null 또는 undefined일 때만 우향 반환
- 옵셔널 체이닝(?.) : 참조가 없으면 undefined 반환, 에러 방지
3. 변수 & 스코프 (Variables & Scope)
- var : 함수 스코프, 호이스팅 발생
- let : 블록 스코프, 재할당 가능
- const : 블록 스코프, 재할당 불가(상수)
- 호이스팅(Hoisting) : 변수, 함수 선언이 스코프 최상단으로 끌어올려지는 현상 (var는 선언만, 초기화는 호이스팅 안 됨)
4. 함수(Functions)
- 함수 선언문 : function foo() {} (호이스팅 O)
- 함수 표현식 : const foo = function() {} (호이스팅 X)
- 화살표 함수 : const foo = () => {} (this 바인딩 없음)
- 콜백 함수(Callback) : 다른 함수의 인자로 전달되어 실행되는 함수
- 클로저(Closure) : 함수가 선언될 당시의 스코프를 기억하여 외부 변수에 접근할 수 있는 함수
5. 객체 & 배열(Objects & Arrays)
- 객체(Object) : Key-Value 형태 데이터 저장
- 배열(Array) 주요 메서드
> 수정 : push, pop, shift, unshift
> 탐색/변환 : map, filter, reduce, forEach, find, some, every
- 스프레드 연산자(...) : 배열,객체 복사/병합에 사용
7. 프로토타입 & 객체지향 (Prototype & OOP)
- 프로토타입 : 모든 객체가 참조하는 상위 객체, 프로토타입 체인을 통해 상속 구현
- class (ES6) : 객체 생성 및 상속을 간편하게 표현하기 위한 문법적 설탕(Syntactic sugar)
8. 비동기 처리(Asynchronous)
- 콜백(callback) : 비동기 작업 완료 후 호출되는 함수
- Promise : 비동기 작업의 성공/실패 상태를 관리하는 객체
- async/await : Promise 기반 비동기 코드를 동기처럼 작성 가능
- 이벤트 루프(Event Loop) : Call Stack, Callback Queue, Microtask Queue를 이용해 비동기 코드 실행을 관리
9. DOM & 이벤트 (DOM & Events)
- DOM : HTML 문서를 객체 트리로 표현한 것
- DOM 조작 : getElementById, querySelector, innerHTML, appendChild
- 이벤트 전파
> 캡처링 : 부모 ➡️ 자식
> 버블링 : 자식 ➡️ 부모
> event.stopPropagation()으로 전파 중단 가능
10. 모듈 시스템(Modules)
- ES6 모듈 : export / import 사용
- CommonJS (Node.js) : module.exports / require 사용
11. 최신 문법(ES6+)
- 템플릿 리터럴 : `Hello ${name}`
- 디스트럭처링 : const {name, age} = obj
- Rest 파라미터 : function sum(...args) {}
- Null 병합 연산자 : value ?? 'default'
- 옵셔널 체이닝 : obj?.prop?.method()
12. 기타 중요 개념
- 고차 함수(HOF) : 함수를 인자로 받거나 반환하는 함수
- Garbage Collection : 참조되지 않는 객체 메모리 해제
- JSON : 데이터 교환 포멧, JSON.stringify(), JSON.parse()
- 에러 처리 : try { ... } catch(e) { ... } finally { ... }
'면접준비' 카테고리의 다른 글
| [면접준비] WEB (2) | 2025.09.17 |
|---|---|
| [면접준비] 네트워크 (0) | 2025.09.17 |
| [면접준비] DB (0) | 2025.09.17 |
| [면접준비] Spring (0) | 2025.09.17 |
| [면접준비] JAVA (0) | 2025.09.16 |