codestates BEB 2주차 3일차 내용 정리

현종's Dev·2022년 7월 13일
0

codestates BEB

목록 보기
3/14
post-custom-banner

자바스크립트의 일급객체 : 함수?

자바스크립트에서는 함수를 일급객체로써 사용하게 되는데, 일급 객체란?

변수에 할당이 가능하다.
다른 함수의 인자로 전달이 가능하다.
다른 함수의 결과로 리턴이 가능하다.

❗ 함수 표현식은 함수 선언식과 다르게 호이스팅이 되지 않는다.

> 호이스팅이란 ? 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 말한다. (추후에 var const let 의 차이는 블로그에 올릴 예정)
참조 : <https://developer.mozilla.org/ko/docs/Glossary/Hoisting>

고차함수?

함수를 인자로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수 이 때, 다른 함수의 인자로 전달되는 함수를 콜백함수라고 한다.

  • 커리함수 : 함수를 리턴하는 함수(고차함수에 커리함수가 포함됨.)
  • 메소드 : 객체에 선언된 함수

배열 내장 메소드(map,filter,reduce, forEach, find,sort, some, every)

  • map : 모든 요소에 동일한 행동을 한 값을 반환 (행동은 내가 함수로 작성이 가능)

  • filter : 모든 요소 중 내가 원하는 값만 필터링 해서 추출한다.(기존 배열을 수정 x)

  • reduce : 배열을 하나의 값으로 만들어준다. (초기 값을 정할 수 있다. 정하지 않는다면, 배열 처음 요소가 초기 값이 된다. 초기 값은 누적의 기반이되며, 그 다음 요소부터 현재값이 되고, 누적 값에 더해진다. 결국에는 누적 값이 더해진다.)

  • forEach : 주어진 함수를 배열 요소 각각에 대해 실행한다.

//예시
const array1 = ['a', 'b', 'c'];

array1.forEach(element => console.log(element));

// expected output: "a"
// expected output: "b"
// expected output: "c"
  • find : 판별 함수를 만족하는 첫 번째 요소의 값을 반환 (없다면 undefined반환)
const array1 = [5, 12, 8, 130, 44];

const found = array1.find(element => element > 10);

console.log(found);
// expected output: 12

*sort : 배열의 요소를 정렬한 후 배열을 반환

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
  • some : 배열 안의 어떤 요소라도 판별 함수를 통과한다면 bool값으로 주어진다.
const array = [1, 2, 3, 4, 5];

// checks whether an element is even
const even = (element) => element % 2 === 0;

console.log(array.some(even));
// expected output: true

배열 메소드는 mdn에서 찾아서 예제들을 보면서 이해하면 될 것 같다.


이 후 배열 메소드를 통한 고차함수 이해는 코플릿 문제 해결을 통해 이해를 진행하였다.
코플릿과 sprint를 진행하면서, 헷갈리는 문제는 체크 해두도록 했다.

고차함수 코플릿 20, 21, 28, 30 ,31번 다시 한번 정리
sprint bareMinimum 복습
advanced(추후 진행)
nightmare(복습하면서 추후 진행)


profile
Dev, Back
post-custom-banner

0개의 댓글