-
Javascript - 순수함수란?FE dev/JavaScript 2022. 1. 11. 17:24반응형
함수형 프로그래밍
- 순수 함수를 만들어 모듈화 수준을 높이는 프로그래밍 패러다임을 말합니다.
부수 효과
- 외부의 상태를 변경, 함수로 들어온 인자의 상태를 직접 변경하는 것을 의미합니다.
순수 함수
- 부수효과가 없는 함수를 의미합니다.
- 어떤 함수에 동일한 인자를 주엇을 때 항상 같은 값을 리턴하는 함수를 의미합니다.
순수함수, 비 순수함수
- 순수함수
- 어디에서 실행을 해도 리턴 값은 30이며 외부 상태를 변경하지 않습니다.
function add(a,b){ return a+b; } console.log( add(10,20) );- 비 순수함수
- 함수내에서 외부의 변수 값이 변하면 결과값도 달라집니다.
- 만약 c가 상수라면 add() 함수는 순수함수입니다.
let c = 10; function add(a,b){ return a + b + c; } console.log( add(10,20) ); console.log( add(10,20) ); c = 20; console.log( add(10,20) );- 비 순수함수, 부수효과
- 함수가 외부의 값을 변경하는 코드를 가지고 있기 때문에 리턴값이 항상 동일하더라도 순수함수가 아닙니다.
let c = 20; function add(a,b){ c = b; //외부상태에 영향을 미치는 부수효과가 발생합니다. return a + b; } console.log("c : " , c); //20 console.log( add(10,30) ); //40 console.log("c : " , c); //30- 객체를 순수함수로 나타내는 방법
let obj = {variable : 10}; function add(obj, b){ return {variable : obj.variable + b} } console.log(obj.variable); // 10 let obj2 = add(obj, 5); console.log(obj.variable); // 10 console.log(obj.variable); // 15'FE dev > JavaScript' 카테고리의 다른 글
Javascript - 구조 분해 할당 방법 [배열, 객체] (0) 2022.01.13 Javascript - 옵셔널 체이닝 (0) 2022.01.10 Javascript 타입종류 (0) 2022.01.10