세모이
개발 계발
세모이
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 알고리즘 (1)
    • 자바스크립트 (29)
    • 리액트 (10)
    • HTML&CSS (2)
    • TIL (26)
    • 파이썬 (8)
    • Dev (1)
    • 데일리 (3)
      • 2023 (3)
    • 에러일기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트 깊은 복사 얕은 복사
  • 모던 자바스크립트 deep deive
  • const let 키워드와 블록레벨 스코프
  • 모던 자바스크립트
  • 자바스크립트 빌트인 객체
  • 자바스크립트 프로토타입
  • 자바스크립트
  • 함수
  • 옵셔널 체이닝
  • 자바스크립트 프로퍼티 어트리뷰트
  • 자바스크립트 생성자 함수에 의한 객체 생성
  • 자바스크립트 전역 변수의 문제점
  • 모던 자바스크립트 deep dive
  • 개발자 도구 Network
  • &&연산자
  • 자바스크립트 함수와 일급 객체
  • 시멘틱 태그
  • 자바스크립트 strict mode
  • 리액트 key
  • html 신기한 태그

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
세모이

개발 계발

TIL

자바스크립트 함수

2022. 2. 13. 11:09
반응형

함수

함수 - 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것



함수는 왜 사용 하는가 ?
-> 코드의 재사용 / 유지보수의 편의성 / 코드의 가독성



함수 정의 방식

함수 정의 방식 예시
함수 선언문 function add(x, y){ return x+y; }
함수 표현식 var add =function(x, y){ return x+y; }
Function 생성자 함수 var add = New function('x', 'y', 'return x + y')
화살표 함수(ES6) var add = (x, y) => x + y;



함수 표현식 - 함수 리터럴로 생성한 함수 객체를 변수에 할당하는 방식

함수 표현식은 '표현식인 문'



함수 호이스팅 - 변수로 할당된 함수 표현식은 변수 호이스팅이 발생하여 할당 전에 참조할 시 undefined로 초기화 되고, 함수 선언문을 통해 생성된 식별자는 함수 객체로 초기화된다.
X)



반환문 - 반환문은 함수의 실행을 중단하고 함수 몸체를 빠져 나간다.
반환문은 return 키워드 뒤에 오는 표현식을 평가해 반환한다



참조에 의한 전달과 외부 상태의 변경 - 함수를 호출하고 인자를 전달 할 때 원시 값은 값에 의한 전달, 객체는 참조에 의한 전달 방식으로 동작

-> 함수 내부에서 객체값을 변경하면 원본 객체 값도 변경이 된다.



즉시 실행 함수 - 함수 정의와 동시에 즉시 호출되는 함수(한번만 호출 가능)

(function () {
  console.log(1, 2);
})();



재귀 함수 - 자기 자신의 호출을 수행하는 함수

function countdown(n) {
  for (var i = n; i >= 1; i--) console.log(i);
}
countdown(10); // 10 9 8 7 6 5 4 3 2 1

// 반복문 없이 재귀 함수를 사용해 구현 가능
function countdown(n) {
  if (n === 0) return;
  console.log(n);
  return countdown(n - 1);
} // 10 9 8 7 6 5 4 3 2 1

재귀 함수는 자신을 무한 호출 하므로 탈출 조건을 반드시 만들어야 한다.



중첩 함수 - 함수 내부에 정의된 함수(중첩함수는 외부 함수 내부에서만 호출 가능)

function outer(n) {
  // 중첩함수 내부에서는 외부함수의 변수를 참조할 수 있다.
  function inner() {
    return n ** 2;
  }
  if (typeof n === "number") {
    n = inner();
    return n;
  } else {
    return "숫자 타입이 아닙니다";
  }
}

outer(10); // 100
outer("야호"); // '숫자 타입이 아닙니다'



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

function repeat(n, f) {
  for (var i = 0; i < n; i++) {
    f(i);
  }
}

var logAll = function (i) {
  console.log(i);
};
반응형

'TIL' 카테고리의 다른 글

git rebase  (0) 2022.02.19
첫 팀프로젝트 후기  (0) 2022.02.16
AWS  (0) 2022.02.13
라우팅  (0) 2022.02.13
자바스크립트 간단 요약 ver2  (0) 2022.01.29
    'TIL' 카테고리의 다른 글
    • git rebase
    • 첫 팀프로젝트 후기
    • AWS
    • 라우팅
    세모이
    세모이
    개발 공부!

    티스토리툴바