Skip to content

Latest commit

 

History

History
85 lines (71 loc) · 2.63 KB

이소민.md

File metadata and controls

85 lines (71 loc) · 2.63 KB

콜백함수

  • 매개변수로 전달하는 함수
  • 매개변수를 전달하는 당시에 호출하는 것이 아니라 함수 내부에서 해당 콜백함수를 사용할 때 호출

일급객체란?

일반 객체처럼 모든 연산이 가능한 것을 의미

  • 함수의 매개변수로 전달 가능
  • 함수 반환 가능
  • 할당 명령문
  • 동일 비교 대상
  • 일급 함수도 일급 객체와 같은 특징을 가짐
  • 이러한 특징으로 함수에서 함수를 매개변수로 받을 수 있음

고차함수

  • 인자로 함수를 받거나
  • 함수를 반환하는 함수
// 콜백 함수를 별도의 함수로 정의하여 콜백함수의 이름만 인자로 전달하는 방법
const add = (a,b) => a+b;
const divide = (a,b) => a/b;

// calculate는 고차함수
function calculate(a,b, action){ // action은 콜백함수, 여기서 호출되어서 값을 반환하는 것이 아님
    return action(a,b); // 여기서 action 호출됨.
}

calculate(1,2,add); // 3
calculate(1,2,divide); // 0.5

콜백함수를 활용하는 함수

forEach()

  • 배열 메서드
  • 단순하게 배열 내부의 요소를 사용해 콜백함수를 호출해줌.

사용하기

const numbers = [2, 235, 57, 78, 23];

numbers.forEach((value, index, array) => // 화살표 함수 사용
    console.log(`array : ${array}, ${index} : ${value}`)
);
// array : 2,235,57,78,23, 0 : 2
// array : 2,235,57,78,23, 1 : 235
// array : 2,235,57,78,23, 2 : 57
// array : 2,235,57,78,23, 3 : 78
// array : 2,235,57,78,23, 4 : 23

map()

  • 배열 메서드
  • 콜백 함수에서 리턴한 값들을 기반으로 새로운 배열 만드는 함수

사용하기

let numbers = [2, 235, 57, 78, 23];

numbers = numbers.map(value => value * value);

numbers.forEach(console.log); // value, index, array 순으로 출력됨.
// 4 0 (5) [4, 55225, 3249, 6084, 529]
// 55225 1 (5) [4, 55225, 3249, 6084, 529]
// 3249 2 (5) [4, 55225, 3249, 6084, 529]
// 6084 3 (5) [4, 55225, 3249, 6084, 529]
// 529 4 (5) [4, 55225, 3249, 6084, 529]

filter()

  • 배열 메서드
  • 콜백함수에서 리턴하는 값이 true인 것만 모아서 새로운 배열 만듦

사용하기

const numbers = [0, 1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(value => 
    value % 2 === 0);

console.log(`기존 배열 : ${numbers}`); // 기존 배열 : 0,1,2,3,4,5
console.log(`짝수 추출 : ${evenNumbers}`); // 짝수 추출 : 0,2,4


참고자료