50일차 - 순수함수, 구조 분해 할당

김민찬·2021년 6월 28일
0

취업으로의 여정

목록 보기
51/196

오늘은 순수함수와 구조분해 할당에 대해 정리해 보겠다.

순수함수

순수함수는, 함수의 입력한 값 만이 함수의 영향을 끼치는 함수를 말한다. 다르게 말해보자면, 다른 값이 개입된다면, 그것은 순수함수가 아닌 것이다.

예를 들어서

function multiply (a, b){
  return a * b
};

이러한 곱하기 함수를 만들었다고 쳤을때, 위는 순수함수일까?
순수함수가 맞다. 언제, 어디서 실행해도 매개변수에 일정한 값을 넣었을때, 항상 값은 값을 리턴한다.

그러면

Math.random();

Math.random()은 순수함수일까?
Math.random()은 순수함수가 아니다. 실행할 때 마다 다른 값을 출력하기 때문이다.

구조 분해 할당

구조 분해 할당에 대한 설명은 MDN 구조분해할당에 잘 나와있지만, 짧게 보여주는 형식으로 작성해 보겠다.

const obj = {
  name: {
    first: "Hong",
    second: "Gildong"
  },
  ability: ["Chukjibeop", "Martial Arts", "Sword Master"]
};

이러한 객체가 있을때 만약 구조 분해 할당을 하지 않고, name과 ability를 가져오려고한다면

const name = obj.name;
const ability = obj.ability;

console.log(name); // {first: "Hong", second: "Gildong"}
console.log(ability); // ["Chukjibeop", "Martial Arts", "Sword Master"]

이런식으로 작성해야 할 것이다.
그런데 구조 분해 할당을 이용하면 아래 처럼 한 문자로 받아서 할당까지 할수 있다.

const { name, ability } = obj;

console.log(name); // {first: "Hong", second: "Gildong"}
console.log(ability); // ["Chukjibeop", "Martial Arts", "Sword Master"]

이런식으로 말이다.
객체 말고도 배열에 구조분해 할당을 사용할 수도 있다.

const arr = [0, 1, 2, 3, 4, 5];

const [y, x, ...z] = arr;

console.log(x); // 1
console.log(y); // 2
console.log(z); // [2, 3, 4, 5]

이런식으로 말이다.

profile
두려움 없이

0개의 댓글