22.02.17(목) 함수

luckygamza·2022년 2월 16일
0

TIL

목록 보기
2/21

함수

함수도 값이다. 이렇게 값이 될수 있는 객체를 **일급객체**라 한다.
  • 함수선언문과 함수 호이스팅 vs 함수 표현식

    함수 선언문으로 선언한 함수도 변수 선언과 마찬가지로 호이스팅할 수 있다.

    이 때 변수 떄와의 차이점은 호이스팅한 함수 변수는 undefined를 가지는 게 아니라 해당 함수를 값으로 가진다는 것이다.

    그러나 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 호출해야한다는 당연한 규칙을 무시하므로 왠만하면 함수 표현식을 사용하자.

  • 자바스크립트의 함수 특징

    • 매개변수의 갯수와 인수의 갯수가 일치하는지 체크하지 않는다.
    • 매개변수보다 인수가 더 많으면 초과된 인수들은 쓰이지 않는다.(버려지는건 아니다)
    • 더 적으면 매개변수로 들어온 인수들만 인수값으로 초기화된다.
    • 이때 할당되지 않은 매개변수들은 undefined로 초기화된다.
  • 함수 잘 만드는 법👍

    • 함수가 받을 매개변수가 3개 이상이 된다면, 하나의 매개변수를 받도록 하고 인수로 객체를 받는 방법을 고려하자.
    • 이 때, 전달받은 객체를 함수 내부에서 변경하면, 함수 외부의 객체도 변경되는 부수효과가 발생하므로 주의하자.
    • 하나의 함수는 한가지 일만 하도록 하자.
  • 콜백 함수와 고차함수

    • 콜백함수 : 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수

    • 고차함수 : 매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수.

    • var repeat = function (n, f) {
          for (var i=0; i<n;i++) {
              f(i);
          }
      }
      var print = function (i) {
          console.log(i)
      }
      repeat(5,print) // 0 1 2 3 4

0개의 댓글

관련 채용 정보