- 불변성
'immutable'
데이터가 변할수없다
불변성 데이터가 작동하는 방식 : 원본을 복사 → 복사한데이터를 부분 수정
객체 불변성을 지키기 위해 사용하는 메서드 : Object.assign
배열 불변성을 지키기 위해 사용하는 메서드 : Array.concat , 배열 스프레드 연산자
const addColor = (title, list) => [...list, {title}];
- 순수성
- 순수 함수는 파라미터를 최소 하나 이상 받아야한다.
- 값이나 다른 함수를 반환해야한다.
- 인자나 함수 밖에 있는 다른 변수를 변경하거나, 입출력을 수행해서는 안된다.
순수함수의 세가지 규칙
- 데이터변환
배열의 reduce메서드로 unique한 배열 만들기(중복제거)
const colors = ["red", "red", "green", "blue", "green"]; const uniqueColors = colors.reduce( (unique,color) => distinct.indexOf(color) !== -1 ? unique : [...unique, color], [] ); console.log(distinctColors); // ["red", "green", "blue"];
- 고차함수
- 재귀