자바스크립트 함수 정의 및 함수의 종류

2022. 12. 25. 21:54· Language/javascript
목차
  1. 1. 함수 정의 방법
  2.  
  3. 2. 다양한 함수의 형태
반응형

함수는 함수 정의를 통해 생성하는데 함수 선언문, 함수 표현식, Function 생성자 함수, 화살표 함수 등을 통해 함수를 정의할 수 있다. 함수를 정의한 후에 함수를 실행시키려면 함수를 호출시켜야한다.

1. 함수 정의 방법

1) 함수 선언문

function hello (a, b) {
    return a+b;
}

console.log(hello(3,7)); // 10

 

2) 함수 표현식

const hello = function (a, b) {
    return a+b;
}

console.log(hello(3,7)); // 10

 

3) function 생성자 함수

const hello = new Function('a', 'b', 'return a + b');

console.log(hello(3, 7)); // 10

 

4) 화살표 함수

const hello = (a, b) => {
    return a + b
}

console.log(hello(3, 7)); // 10

 

반응형

 

2. 다양한 함수의 형태

함수를 정의하는 방법도 다양하지만 함수의 형태도 다양하다. 다양한 함수의 형태에 대해서도 알아보자.

 

1) 즉시 실행 함수

즉시 실행 함수는 함수 정의와 동시에 즉시 호출되는 함수를 말하는데 즉시 실행 함수는 단 한번만 호출되며 다시 호출할 수 없다. 또한 즉시 실행함수는 익명 즉시 실행 함수와 기명 즉시 실행 함수로 나뉠 수 있다.

// 익명 즉시 실행 함수
(function () {
    const a = 5;
    const b = 7;
    return a + b;
}());

// 기명 즉시 실행 함수
(function hello() {
    const a = 5;
    const b = 7;
    return a + b;
}());

 

2) 재귀 함수

재귀함수는 자기 자신을 호출하는 함수를 말한다. 재귀함수는 반복되는 처리를 위해 사용하는데 아래 예제를 통해 확인할 수 있다.

// 일반적인 반복 함수
function hello(n) {
    for(let i = n; i >= 0; i--) console.log(i)
}

hello(5);


// 재귀함수 호출
function hello(n) {
    if(i < 0) return;
    console.log(n);
    hello(n-1); // 재귀 호출
}

hello(5);

 

3) 중첩 함수

중첩 함수는 함수 내부에 정의된 함수를 의미하는데 이를 중첨 함수 또는 내부 함수라고 부른다. 중첩 함수는 외부 함수에서만 호출할 수 있다.

function hello() {
    const a = 1;
    
    // 중첩 함수
    function inner() {
        const b = 2;
        // 외부 함수의 변수를 참조 가능
        console.log(a+b);
    }
    
    inner();
}

hello();

 

4) 콜백 함수

콜백 함수는 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 의미한다.  매개변수를 통해 함수의 외부에서 콜백 함수를 전달 받은 함수를 고차 함수라고 한다.

 

5) 순수 함수와 비순수 함수

순수 함수는 부수 효과가 없는 함수이며, 비순수 함수는 부수 효과가 있는 함수를 의미한다.

반응형
저작자표시 비영리 동일조건 (새창열림)
  1. 1. 함수 정의 방법
  2.  
  3. 2. 다양한 함수의 형태
'Language/javascript' 카테고리의 다른 글
  • 생성자 함수에 의한 객체 생성, 일반함수와 생성자 함수
  • 자바스크립트의 실행 컨텍스트, 렉시컬 환경, 스코프
  • 자바스크립트 객체 리터럴 (원시값과 객체를 비교하면?)
  • 자바스크립트의 제어문(조건문, 반복문 빠져나오는 법)
도잎
도잎
프론트엔드 개발 성장기록
도잎
JDevelog
도잎
전체
오늘
어제
반응형
  • 분류 전체보기 (149)
    • Web dev (48)
      • React (22)
      • Vue (8)
      • Next.js (6)
      • Node.js (2)
      • Springboot (2)
    • App dev (2)
      • Flutter (2)
    • Language (33)
      • javascript (30)
      • typescript (2)
      • java (1)
    • StyleSeet (3)
      • CSS (3)
      • Sass (0)
    • Database (2)
      • PostgreSQL (1)
    • DevOps (11)
      • Webpack (4)
      • Linux (3)
      • Docker (2)
      • Tomcat (1)
    • 개발지식 (2)
      • Web (1)
    • 항해99(6기) (20)
    • UXUI (0)
    • 알고리즘 (25)
    • 유용정보 (2)

최근 글

hELLO · Designed By 정상우.v4.2.1
도잎
자바스크립트 함수 정의 및 함수의 종류
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.