TIL 작성 2021 9/14

Jelkov Ahn·2021년 9월 14일
0

TIL

목록 보기
16/29
post-thumbnail

용어 정의

  • 고차함수: 함수를 인자로 받을수 있고, 함수의 형태로 리턴할 수 있는 함수

    • 변수에 할당할 수 있다.
    • 다른 함수의 인자로 전달될 수 있다.
    • 다른 함수의 결과로서 리턴될 수 있다.
  • 콜백함수: 1. 다른함수의 인자로서 전달되수 있는 함수 / 2. 어떤 이벤트에 의해 호출되어지는 함수.

  • 익명함수: 자바스크립트 익명 함수는 함수명 대신 변수명에 함수 코드를 저장하는 구현 방식이다.

    • 일반 함수의 구조
     let 변수명 = function( 매개변수 ){
      실행문;
    };
    • 익명 함수는 호이스팅이 작동하지 않고, 일반 함수는 작동한다.
    //익명 함수 호출
    orange( );
    
    //익명 함수 선언
    let orange = function( ) {
    document.write("This is an orange.");
    };
    // result : 오류
    //일반 함수 호출
    Good( );
    // result : Good Job!
    
    //일반 함수 선언
    function Good( ) {
    document.write("Good Job!");
    }
    • 일회용으로 사용될때 많이 쓰인다.

sprint review

  • 대표적인 내장 배열 고차함수 : map, filter, reduce

  • 아래는 내장 배열 함수

  • (1) arr.find (no mutation)

  • 정의: 배열에서 특정 값을 찾는 조건을 callback 함수를 통해 전달하여,조건에 맞는 값 중 첫번째 값을 리턴합니다.
    만약 배열에 조건을 만족하는 값이 없으면 undefined를 리턴합니다.

  • 예시)

const arr = [
  {name: 'attack', value : 100}, 
  {name: 'defence', value : 240},
  {name: 'shield', value: 100}
];

function damageValue(element)  {
  if(element.value === 100)  {
    return true;
  }
}

const damage = arr.find(damageValue);
console.log(damage)
{name: 'attack', value: 100}

해당 배열의 값을 리턴하고, 더 이상 나머지 배열의 값은 callback 함수로 전달하지 않습니다.

결국, find() 함수는 callback 함수에 정의된 조건에 부합하는 배열의 첫 번째 값을 리턴하는 것입니다.

  • (2) arr.forEach (no mutation)

  • 정의: forEach() 메서드는 주어진 함수를 배열 요소 각각에 대해 실행합니다.

  • 예시:

const array1 = ['a', 'b', 'c'];

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

// expected output: "a"
// expected output: "b"
// expected output: "c"
  • (3) arr.every (no mutation)

  • 정의: 값이 Array에 존재하는지를 확인한다. every 함수 안에서 true를 리턴하면 loop를 계속 진행하고, false를 리턴하면 리턴한 시점에서 멈춘다.

  • 특징: Array.forEach()와 다르게 loop를 돌다가 중간에 멈출 수 있는 아주 좋은 함수이다. 그래서 Array.forEach()를 사용할 때는 어떤 일이 일어나도 0번부터 N번까지 돌아야 할 때 사용하고, Array.map()은 마찬가지로 어떤 일이 일어나도 0번부터 N번까지 돌지만, 값에 변형을 줘야 할 때 사용한다. 그리고 이 Array.every() 어떤 일이 발생하면 loop를 멈출 필요가 있을 때 사용한다.

  • 예시

const ages = [32, 33, 16, 40];

function checkAge(age) {
  return age > 18;
}

ages.every(checkAge)    // Returns false
  • (4) arr.sort (mutates)
  • 정의: sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다.
  • 특징: 정렬한 배열. 원 배열이 정렬되는 것에 유의하세요. 복사본이 만들어지는 것이 아닙니다.

기준이 없으면 사전식 정렬을 합니다.

  • 예시
const arr = [
  {name: 'attack', value : 100}, 
  {name: 'defence', value : 240},
  {name: 'shield', value: 100}
];

function damageValue(element)  {
  if(element.value === 100)  {
    return true;
  }
}

const damage = arr.sort(damageValue);
console.log(damage)
(3) [{…}, {…}, {…}]
0: {name: 'attack', value: 100}
1: {name: 'defence', value: 240}
2: {name: 'shield', value: 100}
length: 3
[[Prototype]]: Array(0)

기타

profile
끝까지 ... 가면 된다.

0개의 댓글