본문 바로가기
JavaScript

[JavaScript] 함수선언식, 함수표현식, 화살표함수

by lvd-hy 2023. 3. 26.
반응형

목차

    함수의 구성 요소

    자바스크립트에서 함수를 정의하는 방식

    1. 함수 선언문

    - 함수 선언문을 사용해 함수를 정의하는 방식 예시

    function add(x, y) {
      return x + y;
    }
    
    console.log(add(5, 6)); // 11

    - 함수 선언문은 함수 이름을 생략할 수 없다.

    function (x, y) {
      return x + y;
    }
    // Error: Function statements require a function name

    2. 함수 표현식

    - 함수 표현식을 사용해 함수를 정의하는 방식 예시  

    - 함수 표현식은 함수 객체를 변수에 할당할 수 있는 함수 정의 방식이다.

    const add = function (x, y) {
      return x + y;
    };
    
    console.log(add(3, 4)); // 7

    3. 함수 선언문 vs 함수 표현식

    - 함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있다.

    - 함수 표혁식으로 정의한 함수는 함수 표현식 이전에 호출할 수 없다.

    위 와 같은 동작은 함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트의 특징인 함수 호이스팅 때문이다.

    // 함수 호출
    console.log(add(5, 6)); // 11
    console.log(sub(3, 4)); // error
    
    // 함수 선언문
    function add(x, y) {
      return x + y;
    }
    
    // 함수 표현식
    const sub = function (x, y) {
      return x + y;
    };

    4. 화살표 함수 (ES6)

    - function 키워드 대신 화살표를 사용해 함수를 선언하는 방식이다. (화살표 함수는 항상 익명 함수로 정의한다.)

    const add = (x, y) => x + y;
    console.log(add(3, 4)); // 7

     

    Reference

    모던 자바스크립트 딥다이브 12장

    반응형

    'JavaScript' 카테고리의 다른 글

    [JavaScript] 비동기  (1) 2023.05.04
    redux  (0) 2023.04.24
    [JavaScript] 배열, 배열 메서드(method)  (0) 2023.03.25
    [JavaScript] 타이머 API  (0) 2023.03.19
    [JavaScript] 배열 고차 함수  (0) 2023.03.17

    댓글