#10 함수 표현식과 화살표 함수

2026. 1. 7. 17:01·JavaScript/기초
반응형

앞서 배운 함수에 대해 다시 한번 짚고 가보자

function sayHello() {
  console.log("Hello");
}

sayHello();
  • function 키워드를 사용해 함수를 정의
  • 함수 이름 sayHello 가지고 있으며
  • 위치에 상관없이 호출이 가능

이 처럼 함수를 정의하는 것이 함수 선언문 이다.


함수 표현식

함수는 값(value) 이기 때문에 변수에 담을 수 있다.

const sayHello = function() {
  console.log("Hello");
};

sayHello();
  • 함수를 변수에 저장
  • 함수 이름이 없다
  • 변수에 할당된 이후에만 호출 가능

이러한 방식이 함수 표현식이다.


함수 선언문 vs 함수 표현식

함수 선언문

sayHello();

function sayHello() {
  console.log("Hello");
}
  • 함수 선언문 방식은 선언 전에 호출이 가능하다.

함수 표현식

sayHello();

let sayHello = function() {
  console.log("Hello");
};
  • 에러 발생
  • 변수에 함수가 할당되기 전에 호출되었기 때문

이를 호이스팅 차이 라고 한다

  • 함수 선언문: 함수 전체가 미리 등록됨
  • 함수 표현식: 변수만 미리 생성되고 함수는 할당되지 않음

화살표 함수

함수 표현식을 더 짧게 쓰기 위한 문법이다.

 

다음과 같은 코드가 있다고 하자.

let add = function(num1, num2) {
  return num1 + num2;
};

화살표 함수로 바꾸면

let add = (num1, num2) => {
  return num1 + num2;
};

이렇게 작성 가능하다.

 

위 코드는 return 문만 있기 때문에 더 축약이 가능하다

let add = (num1, num2) => num1 + num2;
  • {} 제거
  • return 제거

그 외에 매개변수가 하나일 경우 

let sayHello = name => {
  console.log(name);
};
  • 소괄호 () 생략이 가능

매개변수가 없을 경우

let showError = () => {
  alert("error!");
};
  • 소괄호 () 반드시 필요

 

반응형

'JavaScript > 기초' 카테고리의 다른 글

# 12 배열  (0) 2026.01.08
# 11 객체 (Object)  (0) 2026.01.07
#9 함수  (1) 2026.01.07
#8 반복문  (0) 2026.01.06
#7 논리연산자  (0) 2026.01.06
'JavaScript/기초' 카테고리의 다른 글
  • # 12 배열
  • # 11 객체 (Object)
  • #9 함수
  • #8 반복문
y3onbug5
y3onbug5
y3onbug5 님의 블로그 입니다.
  • y3onbug5
    y3onbug5 님의 블로그
    y3onbug5
  • 전체
    오늘
    어제
    • 분류 전체보기 (167) N
      • Alpacahack (19) N
      • Dreamhack 워게임 (49)
        • Lv.1 (40)
        • Lv.0 (4)
        • LV.2 (3)
        • LV.3 (2)
      • [Dreamhack] Web Beginner (3)
      • [Dreamhack] Web Hacking (17)
        • 웹 기초 지식 (4)
        • Cookie & Session (2)
        • Cross-Site Scripting(XSS) (1)
        • Cross-Site Request Forgery (1)
        • SQL Injection (4)
        • NoSQL Injection (2)
        • Command Injection (1)
        • File Vulnerability (1)
        • Server-Side Request Forgery (1)
      • [Dreamhack] Web Hacking Client-Side (10)
        • XSS Filtering Bypass (2)
        • Content Security Policy (CSP) (2)
        • CSRF,CORS Bypass (2)
        • Client-Side Template Injection (CSTI) (1)
        • CSS Injection (1)
        • Relative Path Overwrite (RPO) (1)
        • DOM Vulnerability (1)
      • [Dreamhack] Web Hacking Server-Side (15)
        • SQL Injection Advanced (4)
        • SQL Injection Advanced - Fingerprinting (2)
        • NoSQL Injection Advanced (3)
        • Command Injection Advanced - Web Servers (3)
        • File Vulnerability Advanced - Web Server (3)
      • [Dreamhack]Black-Box Penetration Testing (15)
        • DreamCommunity Penetration Testing (11)
      • [Dreamhack] LLM (2)
        • [Dreamhack] LLM과 프롬프트 엔지니어링 (2)
      • Web 공부 (4)
      • Web Study (15)
      • JavaScript (17)
        • 기초 (12)
        • 중급 (4)
      • 웹 개발(Flask) (0)
      • [Security First] web 기초교육 (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JS
    LLM
    hacking
    cve
    DreamHack
    드림핵
    JavaScript
    CSRF
    webhacking
    webstudy
    web
    alpacahack
    xss
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
y3onbug5
#10 함수 표현식과 화살표 함수
상단으로

티스토리툴바