부족한 부분 복습 1

Rock Kyun·2023년 12월 18일
1

짧은 시간에 새로운 것들을 학습하고 적용하며
프로젝트를 시작하면 어떻게든 해냈지만,
또 새로 배울 것이 남았다.

새로운 것을 배우기 전에
3일 정도는 이전 학습에서 중요한 내용들을 복습하고
기본을 탄탄하게 만들고 나아가야 할 거 같아서
JS와 React의 심화 단계의 중요한 개념들을
다시 학습하는 기간을 갖도록 해본다.

일급 객체로서의 함수

- JS에서 함수는 객체이다.

일급 객체란?

일급객체는 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
그렇기 때문에 JS에서는 다른 언어보다 함수를 유연하게 사용할 수 있다.

일급 객체로서의 함수 특징

1. 변수에 함수를 할당할 수 있다.

  • 함수를 값으로 취급 가능.
  • 나중에 사용할 수 있도록 조치가 됨.
const testFn = () => {
  return 5;
};

2. 함수를 다른 함수의 매개변수로 전달 가능

const testFn = () => {
  return 5;
};

function testFunc(testFn) {
  // 기능~~ //
}

3. 함수에서 함수를 return 할 수 있다.

const testFn = (x) => {
  return x + 5;
};

const test2 = (num) => {
  return testFn(num);
};

console.log(test2(10)); // 15

callback 함수 : 매개변수로 사용되는 함수 - 2번 특징

고차함수: 함수를 인자로 받거나, 함수를 return 하는 함수 - 3번 특징

4. 객체 내에서 property로 함수를 선언할 수 있다

const person = {
  name: "John",
  age: 31,
  isMarried: true,
  sayHello: function () {
    console.log(`Hi, My name is ${this.name}`);
  },
};

console.log(person.sayHello()); // Hi, My name is John

// 화살표 함수는 this를 바인딩 하지 않는다.
const person2 = {
  name: "John",
  age: 31,
  isMarried: true,
  sayHello: () => console.log(`Hi, My name is ${this.name}`);
}

console.log(person2.sayHello()); // undefined

5. 배열의 요소로 함수 전달 가능

const arr = [
  function sum(a, b) {
    return a + b;
  },
  function sub(a, b) {
    return a - b;
  },
];

console.log(arr[0](1, 2)); // 3
console.log(arr[1](3, 3)); // 0

0개의 댓글