티스토리 뷰
1. Parameter 관련
1.1 Rest Parameter
: 함수 파라미터 펼치기
function foo(first, ...rest) { // 1, 2, 3, 4 = ...rest
console.log(rest) // [ 2, 3, 4 ] = rest
console.log(...rest) // 2, 3, 4 = ...rest
}
foo(1, 2, 3, 4) // 2, 3, 4 = ...rest
1.2 함수 기본 파라미터값(Default Parameters)
function create({ name = 'Unnamed', age = 1, favor = undefined }) {
return { name, age, favor }
}
const created_user_1 = create({ name: 'Aaron' })
const created_user_2 = create({ name: 'Baron', age: 20 })
const created_user_3 = create({ age: 10, favor: 'Game' })
console.log(created_user_1)
console.log(created_user_2)
console.log(created_user_3)
1.3 커링을 통한 파라미터 쪼개기
- 커링(Currying)
: 함수형 프로그래밍에서 자주 사용되는 기법
: 다중 인수를 받는 함수를 여러 개의 단일 인수를 받는 함수들로 변환하는 방식
: 함수를 여러 단계로 나누어 인수를 하나씩 처리 가능
⇒ 함수를 반환하는 함수 = 함수를 만드는 메타함수
// 일반적인 함수
function add(a, b) {
return a + b;
}
// 커링된 함수
function curriedAdd(a) {
return function(b) {
return a + b;
};
}
// 사용 예시
const add5 = curriedAdd(5); // a = 5로 고정된 함수 반환
console.log(add5(10)); // 15
console.log(curriedAdd(3)(7)); // 10
2. 예외처리 (Exception Handling)
2.1 Try
: 예외가 발생할 수 있는 코드를 실행 : 예외가 발생하면 해당 코드 블록은 중단 → 제어권을 catch로 토스
2.2 catch
: Try에서 예외가 발생하면 해당 예외 처리
2.3 Finally
: 예외가 발생했든 발생하지 않았든 항상 실행
: 주로 리소스 정리 작업이나 클린업을 위해 사용
2.4 Throw
: 예외를 강제로 발생시킬 때,
: 발생한 예외는 catch에서 처리(현재 코드에서 처리 실패 시, 호출한 곳으로 예외 토스)
3. IIFE(Immediately Invoked Function Expression)
: “함수 정의부 + 함수 호출부” 한줄에 처리하는것
: 즉시 사용 함수
1) 기본형
(function(parameter) { ... })(argument)
2) 기본형 예시
(function() {
console.log("IIFE 실행!");
})();
3) 화살표 함수형 예시
(() => {
console.log("IIFE 실행!");
})(); // 이벤트 핸들링시 이용하던 그 모습이다,.
4. Closure
: 자신이 선언될 때의 환경(스코프)를 기억 → 함수가 외부 함수의 변수에 접근 가능하도록 Encapsulation 및 상태 관리
- Enclose (여러번 호출 가능) : IIFE 와 달리 여러번 사용이 가능하여, 중앙 상태관리로 활용 가능
- Variable Encapsulation : Lexical Scope 을 활용한 (함수 선언 시 주변 환경 박제) 변수 캡슐화
function createCounter() {
let count = 0; // 카운트 변수
return {
increment: function() {
count++;
console.log(count);
},
decrement: function() {
count--;
console.log(count);
},
getCount: function() {
return count;
}
};
}
const counter = createCounter();
counter.increment(); // 1
counter.increment(); // 2
console.log(counter.getCount()); // 2
counter.decrement(); // 1
참조
ASAC 수업자료
'정리용 > js' 카테고리의 다른 글
[js 자주 사용되는 ES6+문법] 문자열 및 자료 구조 (0) | 2025.01.10 |
---|---|
[js 자주 사용되는 ES6+문법] 얕은 복사, 깊은 복사 (0) | 2025.01.10 |
[js 자주 사용되는 ES6+문법] 비구조화 할당 (0) | 2025.01.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- useReducer
- acas#acas7기
- memo
- useContext
- useMemo
- asac7
- useRef
- Nginx
- ssh
- react
- ASAC
- useLayoutEffect
- git
- asac7기
- asac7#asac
- useCallback
- asac#asac7기
- useEffect
- useState
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함