serin99
serin 개발 일기
serin99
전체 방문자
오늘
어제
  • 분류 전체보기 (76)
    • FE (25)
      • JavaScript (14)
      • React (6)
      • Web (5)
    • IT (22)
      • [FE] 위클리 페이퍼 (19)
      • CS (2)
    • Project (4)
    • Python (8)
    • DB (2)
    • IoT (14)
      • 라즈베리파이 (9)
      • 아두이노 (4)

태그

  • Python
  • 라즈베리파이
  • 부트캠프
  • 프로그래밍
  • 자바스크립트

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
serin99

serin 개발 일기

📖 [JS] 함수 표현식과 화살표 함수
FE/JavaScript

📖 [JS] 함수 표현식과 화살표 함수

2024. 7. 17. 21:34
728x90

 

 

 

자바스크립트 함수의 독특한 문법인

함수 표현식과, 화살표 함수에 대해 알아봅시다. 

 


 

 

<함수 표현식>

 

function funcA() {
	console.log("funcA");
}

let varA = funcA;
console.log(varA);

varA();

 

 

let varA라는 변수를 만들고 초기값으로 funcA라는 함수를 담아 주도록 하겠습니다.

이때, funcA라는 함수를 호출해서 결괏값을 변수에 담은 것이 아니라

funcA라는 함수 자체를 변수에 담았습니다. 

 

 

 

console에 출력해보면 위 사진과 같은 값이 출력됩니다.

즉, 함수도 숫자나 문자열과 같은 하나의 "값"으로써 취급하기 때문에

 

let varA = funcA처럼 함수 자체를 변수에다가 담아 놓을 수 있습니다.

이렇게 함수를 어떤 변수에 담게 되면, funcA라는 함수를 변수의 이름으로 호출해 줄 수도 있다는 것을 알 수 있습니다.

 

 

function funcA() {
	console.log("funcA");
}

let varA = funcA;
console.log(varA);

varA();

// 함수를 생성하고 바로 변수에 담음
let varB = function funcB() {
	console.log("funcB");
};

varB(); // 호출 가능
funcB() // 호출 불가능

 

 

위 코드 처럼 자바스크립트의 특징을 이용하면

우리가 함수를 굳이 선언하지 않고,

그냥 변수에 담듯이 사용할 수 있습니다.

 

이렇게 되면 funcB라는 함수는 varB라는 변수에 담겨 있기 때문에

varB();라는 이름으로 함수를 호출할 수 있습니다.

 

다만, 한 가지 주의해야할 점이 있습니다.

funcB의 경우에는 선언식이 아닙니다.

그 이유는 선언식이라는 것은 어떤 변수의 값으로써 담기지 않은 상태로 유지가 되어야 합니다.

그래서 위 코드 부분은 그냥 값으로써 함수가 생성된 것이므로, 이 함수의 이름으로는 호출이 불가능합니다.

 

그렇기 때문에  위 코드처럼 함수를 생성하지 않고

함수를 생성할 때 이름을 생략하여도 문제가 되지 않습니다.

그리고 이렇게 이름이 없는 함수를 "익명 함수"라고 합니다.

 

function funcA() {
	console.log("funcA");
}

let varA = funcA;
console.log(varA);

varA();

// 함수를 생성하고 바로 변수에 담음
let varB = function () { // 익명 함수
	console.log("funcB");
};

varB();

 


정리하자면, funcA처럼 함수 선언문을 이용해서 함수를 만들지 않고,

대신에 이 varB처럼 값으로써 함수를 생성하는 방식을

자바스크립트에서는 특별히 "함수 표현식"이라고 부릅니다.

 

이 함수 표현식으로 만든 함수들은 값으로써 취급이 되는 거기 때문에

호이스팅이 되지 않습니다.

 




<화살표 함수>

 

화살표 함수라는 건 함수 표현식과 비슷한 개념입니다.

 

화살표 함수라는 건 함수를 이전보다 더 빠르고 간결하게 생성해 줄 수 있도록

도와주는 자바스크립트 문법입니다.

 

// 화살표 함수
let varC = function() {
	return 1;
}
// 여기서 function을 지워버리고
// 소괄호와 중괄호 사이에 화살표를 넣어주시면 됩니다.

let varC = ("매개 변수 사용 가능") => {
	return 1;
}

console.log(varC());

 

728x90

'FE > JavaScript' 카테고리의 다른 글

📖 [JS] 자바스크립트에서 "truthy"와 "falsy"  (0) 2024.07.19
📖 [JS] 배열  (0) 2024.07.19
📖 [JS] 객체  (0) 2024.07.18
📖 [JS] 콜백 함수  (0) 2024.07.17
📖 [JS] 함수  (0) 2024.07.17
    'FE/JavaScript' 카테고리의 다른 글
    • 📖 [JS] 배열
    • 📖 [JS] 객체
    • 📖 [JS] 콜백 함수
    • 📖 [JS] 함수
    serin99
    serin99
    FE 개발자가 되기 위해 공부하는 사람

    티스토리툴바