identity, 뭐에 쓰는 함수일까? [TIL / JavaScript]

알락·2023년 4월 26일
0

함수형프로그래밍

목록 보기
3/3

identity banner

유인동 - ⌜함수형 자바스크립트 프로그래밍⌟을 참고해서 작성했습니다.

identity 라는 함수가 책에서 소개되었다. 바로 위 이미지에 나타나있는 함수가 바로 주인공이다. 해당 함수를 이용하면 그저 똑같은 인자로 넘긴 값과 똑같은 결과값이 반환된다. 이를 예상하는 것은 어렵지 않다.

const identity = function(v){return v;}

identity(10);
// 10

하지만 이렇게 쓸모 없어 보이는 함수도 언어의 작동하는 방식을 잘 이해하고 있으면 유용하게 쓸 수 있다.

if(identity(0)) console.log("a");
// 출력 없음
if(identity(NaN)) console.log("b");
// 출력 없음
if(identity({})) console.log("c");
// c

이렇듯 조건식 판별문 안에서 identity 함수를 사용하게 되면 평가가 된다. 0이나 NaN 같은 값들은 falsy 값으로 false로 평가된다. 그렇다면 이 identity 함수를 고차함수의 인자로 사용하면 falsy 값에 대한 처리를 신박하게 할 수 있다.

falsy 값으로는 0, -0, 0n, "", null, undefined, NaN 이 있다.

[0, NaN, false].filter(identity);
// []
[0, NaN, false, true, undefined, 1].filter(identity);
// [true, 1]
profile
블록체인 개발 공부 중입니다, 프로그래밍 공부합시다!

0개의 댓글