함수형 프로그래밍
- JS는 함수형 프로그래밍의 특징을 가지고 있어서 인자로 함수를 전달하는 경우가 많음.
- 함수형 프로그래밍은 코드의 간결성과 유연성을 높이는 데 유리함.
// 함수형 프로그래밍 예시 (인자를 함수로 전달함)
function ask(f1, f2, f3){
if (f1("질문이다!")) {
f2();
} else {
f3();
}
}
ask(
(username) => confirm(username),
() => alert("대답"),
() => alert("??")
);
동기 vs 비동기
- JS는 대부분 비동기적으로 동작함 (HTTP 요청, 이벤트 핸들링 등)
- 비동기 작업을 순차적으로 실행하려면 어떻게 해야 할까?
- 콜백 함수, Promise, async/await 방식이 있음
콜백 함수
• 콜백 함수: 후속 작업을 함수로 전달하여 지연 호출하는 방식
• 단점: 콜백 지옥 발생 -> 코드 가독성 떨어짐
![]() |
![]() |
Promise
- Promise: 비동기 작업을 체이닝으로 처리해 직관적으로 순차 실행 가능
- .then() 체이닝으로 작업 순서 조절 가능
- 주의!: 반드시 Promise 객체를 반환해야 함.
- Promise 객체를 반환해야 .then()이나 .catch() 체이닝으로 후속 작업을 이어나갈 수 있음.
![]() |
![]() |
async - await
- async - await: 비동기 작업을 동기식 코드처럼 작성 가능
- 코드 가독성이 높아짐
- async 함수는 자동으로 Promise 객체를 반환함.
- async 함수 내부에서 Promise가 아닌 값을 반환해도, JS가 이를 자동으로 Promise로 감싸서 반환함.
![]() |
![]() |
'프론트 > JS' 카테고리의 다른 글
5. 웹 요청을 위한 JS(axios) (0) | 2024.10.28 |
---|---|
4-2. 브라우저를 위한 JS(DOM - 요소 선택, 조작, 이벤트 연결) (0) | 2024.10.28 |
4-1. 브라우저를 위한 JS(BOM) (1) | 2024.10.28 |
2. JS 기초(기초 문법) (0) | 2024.10.28 |
1. JS 기초(V8엔진, 런타임, 동기-비동기-블로킹-논블로킹) (0) | 2024.10.28 |