Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 쏙쏙들어오는함수형코딩
- 출처 : 자바스크립트 딥다이브
- 에릭 노이먼
- 출처는 코딩애플
- 출처 : https://www.boostcourse.org/
- 쏙쏙 들어오는 함수형 코딩
- 갈길이 멀구나
- 출처 : 코딩앙마
- 큰돌의 CS책
- https://product.kyobobook.co.kr/detail/S000001952246
- 생코님Redux
- 함수형 코딩
- 자바스크립트 딥다이브
- 김영한쌤
- 에릭 노먼드
- 이웅모
- 로버트 C마틴
- 에릭노이먼
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 흥달쌤
- 출처 : 코딩애플
- 오종택개발자님
- 쏙쏙 들어오는 함수형코딩
- 쏙속 들어오는 함수형코딩
- 리엑트를 다루는 기술
- 클린코드다시읽기
- 유틸리티타입은 공식문서 자주 보자
- 출처는 코딩앙마
- 고등애플
- 나는 flux좋아...
Archives
- Today
- Total
틈틈히 메모중
[javascript] ()=>()=>{}를 쓸 때... 본문
1. 함수의 실행순서를 보장한다. 이거하고나서 저거하자가 가능해짐
const a = () => (id: string) => {
console.log(`Received ID: ${id}`);
};
const b = a(); // 여기서 a()가 두 번째 함수를 반환
b("123"); // 출력: "Received ID: 123"
2. 상태를 유지하는 클로저
const counter = () => {
let count = 0;
return () => {
count += 1;
console.log(count);
};
};
const increment = counter();
increment(); // 출력: 1
increment(); // 출력: 2
increment(); // 출력: 3
counter() 함수에서 count 변수는 increment() 함수가 호출될 때마다 증가함
이 예시에서 increment()는 counter() 함수의 클로저로, count 변수에 접근할 수 있음.
즉, 상위 함수에서 관리되는 상태를 하위 함수에서 유지하며 사용할 수 있는 점이 클로저의 장점
하위 함수에 실제 값을 전달하지 않고도
상위 함수의 데이터를 계속 사용할 수 있게 되기 때문에,
재사용하거나 수정하는 시 데이터는 상위함수에서만 수정, 관리하면 되어 편함
또, 하위함수에서 상위 함수의 상태를 그대로 유지할수 있음( == 상위 함수의 변수,상태 스코프를 하위에서 기억한다)
하위에는 껍데기만 전달하고 상위에서 알맹이를 주입하는 형태라서 응집도높고, 결합도 느슨한 좋은코드가 됨:)
3. 커링
const add = (a: number) => (b: number) => a + b;
const add5 = add(5); // add5는 이제 b값만 받는 함수가 됨
console.log(add5(3)); // 출력: 8
커링은 여러 인자를 받는 함수를 여러 단계의 함수로 분리하는 방식
즉, 두 개 이상의 인자를 받는 함수가 있을 때, 그 인자들을 하나씩 받는 함수로 변환하는 기법입
인자를 좀 시간차 공격해서 (?) 받고 싶을 때 씀
'[오늘의 공부] > Javascript' 카테고리의 다른 글
[javascript] Promise, async/await 가 무엇이냐! (0) | 2024.06.07 |
---|---|
[javascript] Truthy / Falsy (0) | 2023.07.14 |
[javascript] sort (0) | 2023.06.30 |
[javascript] 배열method 정리 (0) | 2023.03.02 |
[javascript] or 연산자(||), ??연산자의 차이와 ?. 로 에러 대신 undefined 반환하기 (0) | 2023.02.04 |