💻공부한 내용
순수함수 (Pure Function)
1. 입력에 대해 동일한 출력을 반환
2. 부작용(side effect)이 없다
3. 상태를 변경하지 않는다
순수 함수는 예측 가능하고 코드의 가독성을 향상시키고
오류를 줄이는 데 도움을 준다
✅ 순수함수 예시
// 덧셈 함수
function add(a, b) {
return a + b;
}
console.log(add(2, 3)); // 결과: 5
// ______________________
// 배열 복제 함수
function cloneArray(arr) {
return [...arr];
}
const originalArray = [1, 2, 3];
const clonedArray = cloneArray(originalArray);
console.log(originalArray); // [1, 2, 3]
console.log(clonedArray); // [1, 2, 3]
state 뿐만 아니라 props 역시
불변성를 지켜야만 순수 함수(컴포넌트)라 할 수 있다
✅ 비순수함수 예시
// 현재 날짜와 시간을 반환하는 함수
function getCurrentTime() {
return new Date();
}
// 매번 다른 값을 반환
// __________________________________
// 전역 변수 수정
let counter = 0;
function incrementCounter() {
counter++;
}
부작용을 가진 함수
// __________________________________
// 사용자 입력을 받는 함수
function getUserInput() {
return prompt('Enter a value:');
}
사용자의 입력 영향으로 항상 동일한 값을 반환하지 않음.
비순수 함수는 예측하기 어렵고
코드의 상태 변화와 부작용을 추적하기 어려워서
리액트에서는 순수 함수의 사용을 권장
'✍️ 스파르타 TIL' 카테고리의 다른 글
[TIL] sparta 23일차 - Todolist 개인과제 (0) | 2023.11.06 |
---|---|
[TIL] sparta 22일차 - MPA, SPA, SSR, CSR (0) | 2023.11.03 |
[TIL] sparta 20일차 - 리액트 state, 불변성 (0) | 2023.11.01 |
[TIL] sparta 19일차 - 리액트(React), 컴포넌트, JSX (0) | 2023.10.31 |
[TIL] sparta 18일차 - async, await (0) | 2023.10.30 |