모든 것이 순수한 수학 함수 스타일로 묶는 프로그래밍 패러다임이다.
순수 함수와 불변성을 강조하며 프로그램의 상태 변경을 최소화하는 것을 목표로 한다. 코드의 간결성으로 가독성을 높이고 모듈성 및 예측 가능성을 높일 수 있다.프로그래밍 패러다임이란?
개발자에게 프로그래밍 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할을 한다.명령형 프로그래밍과 선언형 프로그래밍
- 명령형 프로그래밍 :무엇을 할건지 보다는 어떻게 할 건지를 설명하는 방식
-- 1. 절차지향 프로그램밍 : 수행되어야 되는 기능을 순차적인 처리 과정으로 진행하는 방식
-- 2. 객체지향 프로그래밍 : 객체들의 집합으로 프로그램의 상호 작용으로 진행하는 방식
- 선언형 프로그래밍 : 어떻게 할 건지 보다는 무엇을 할 건지를 설명하는 방식
-- 1.함수형 프로그램(비절차형 언어) : 순수함수를 사용하며 상태 제어보단 처리 속도가 빠른 것에 초좀을 둔 방법
- 부수효과가 없는 함수
- 부수효과란(Side Effect)?
의도하지 않게 외부변수를 참조하거나 변경하는 모든 코드를 말한다.(즉 변화가 발생하는 작업)
✨ 변수의 값 변경 이나 객체의 필드를 저장하는 것
✨ 예외나 오류 발생으로 실행 중단
- 함수의 실행이 외부에 영항을 끼치지 않는 함수
- 동일한 인자에 대해서는 항상 동일한 값을 리턴
- 모듈화 수준을 향상시켜 생산성, 안정성을 높인다
function add(a ,b) {
return a + b;
}
add(5,5) // 결과 -> 10
add(5,5) // 결과 -> 10
//이런 경우 동일한 값을 리턴하기 때문에 순수함수라고 할 수 있다.
var c = 10;
function add2(a,b) {
return a + b + c;
}
add2(5,5) // 결과 -> 20
add2(5,5) // 결과 -> 20
c=15;
add2(5,5) // 결과 -> 25
// add2의 경우에는 함수 외부에서 선언 된 변수인 c를 참조하기 때문에 순수함수라고 볼 수 없다.
var hny = "happy new year"
var slicehny = hny.slice(1,4);
console.log(hny); //happy new year
console.log(slicehny);//appy
// 새로운 문자열을 생성해 slicehny에 저장
var a; // 변수 a 선언함
a = "apple"; // a에 데이터 할당👍 함수형 프로그래밍의 장점
😅 함수형 프로그래밍의 단점
안녕하세요