변경 불가능하고 기능적인 JavaScript 작성
불변의 개념과 기술
JavaScript 및 React에서 불변 관행을 사용하는 이유:
버그가 도입될 표면적을 낮춥니다.
데이터 및 변경 기록을 생성합니다. 유용할 수 있는 것은 데이터 흐름을 따르거나 디버깅과 같은 것입니다.
순수 기능:
범위.
따라서 함수에 X-Factor가 도입되지 않는 한 출력은 "예측 가능"합니다. 함수(func1)에 들어가는 유일한 것은 입력입니다. API 데이터 또는 입력에 따라 변경되는 다른 함수(func2)의 데이터가 도입되면 더 이상 입력에 대해 확실하게 말할 수 없습니다.
상수 할당:
const variable = 'hello world'
try{
variable = 'Hello World!'
}catch(error){
console.log(error) // TypeError: invalid assignment to const 'variable'
}
데이터의 변형을 방지할 할당의 오른쪽에 추가되는 키워드에 대한 ECMAScript 제안에 대한 멋진 이야기가 있습니다. 아마도 다음과 같이 보일 것입니다.
const obj = immut { a: 1, b: 2 }
obj['a'] = 3 // Error Thrown
console.log(obj['a']) // 1
동결 개체
사물.
const obj = {
zoo: 'animals'
}
Object.freeze(obj)
obj['zoo'] = 'noAnimals'
console.log(obj['zoo']) // 'animals'
스프레드 연산자
const arr = [ 1, 2, 3, 4 ]
const newArr = [ ...arr, 'newData' ]
console.log(arr) // [ 1, 2, 3, 4 ]
console.log(newArr) // [ 1, 2, 3, 4, 'newData' ]
고차 함수(HOF)
다음은 코드에서 불변성 개념을 더 준수하기 위해 HOF 동작을 활용하는 예입니다.
const arr = [ 1, 2, 3 ]
const newArr = arr.map(ele => ele * 2)
console.log(newArr) // [ 2, 4, 6 ]
console.log(arr) // [ 1, 2, 3 ]
암묵적 프로그래밍(포인트 프리)
따라서 포인트 프리 스타일은 추상화를 허용할 수 있는 기능적 개념입니다. 이제 이것은 과도하게 사용되어 다음으로 이어질 수 있습니다.
또는 인수 이름 지정이 부족하여 혼동을 일으키기도 합니다. 이 남용/오용의 "무의미한 스타일"이라는 별명도 있습니다. 적절하게 사용하면 인수의 추상화와 단일 함수에 대한 구현이 느껴진다.
const arr = [ 1, 2, 3 ]
const addTwo = (ele) => ele + 2
const twoAddedPointFree = arr.map(addTwo)
console.log(twoAddedPointFree) // [ 3, 4, 5 ]
// You can even reuse it!
const fourAdded = twoAddedPointFree.map(addTwo)
console.log(fourAdded) // [ 5, 6, 8 ]
Reference
이 문제에 관하여(변경 불가능하고 기능적인 JavaScript 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jacobmgevans/writing-immutable-javascript-why-how-3if6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)