Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- navigationBar 숨기기
- GridItem
- 세로모드끄기
- CSS
- 리렌더링최적화
- C++
- react fsd
- LazyHGrid
- @observedobject 프로퍼티 래퍼
- 반응형 css
- 리액트최적화
- @published 프로퍼티 래퍼
- BFS
- 동기 함수 내에서 비동기 함수 호출
- 페이지전환
- 컴퓨터네트워크
- featured-sliced-design
- react-router-dom
- physical media
- 블로그업로드확인
- 상단 빈공간 제거
- LazyVGrid
- 비동기함수
- 페이지이동함수
- @environmentobject 프로퍼티 래퍼
- 가로모드끄기
- react hook
- SwiftUI Font
- access network
- network core
Archives
- Today
- Total
leebaek
[JS] 익명함수와 기명함수 | 함수 표현식 vs 함수 선언식 본문
■ 기명 함수 ( Named Function )
■ 익명 함수 ( Anonymous Function )
■ 함수 표현식 vs 함수 선언식
JavaScript에서는 함수의 이름이 있는지, 없는지에 따라 크게 두 가지로 나눌 수 있어요.
이름이 있으면 기명 함수, 없으면 익명 함수라고 불러요.
기명함수, 익명함수에 대해 알아보아요.
그 후, 함수 선언식과 함수 표현식에 대해 알아봅시다!
■ 기명 함수 ( Named Function )
: 이름이 붙은 함수로, 선언식 또는 이름 있는 표현식으로 작성됩니다.
- 함수 이름이 존재하여 재귀 호출이 가능합니다.
- 디버깅 시 스택 트레이스에 이름이 표시됩니다.
// 함수 선언식
function greet() {
console.log("Hello!");
}
// 함수 표현식
const greet = function sayHi() {
console.log("Hi!");
};
■ 익명 함수 ( Anonymous Function )
: 이름이 없는 함수로, 주로 함수 표현식이나 콜백 함수에 사용됩니다.
- 이름이 없어 재귀 호출이 어렵습니다.
- 디버깅 시 anonymous로 표기되어 추적이 어려울 수 있습니다.
const greet = function () {
console.log("hi");
};
setTimeout(function () {
console.log("Hello after 1 second");
}, 1000);
// 화살표 함수
const double = (n) => n * 2;
setTimeout(() => {
console.log("Arrow function!");
}, 1000);
■ 함수 표현식 vs 함수 선언식
□ 호이스팅 여부 / 메모리 할당 시점
✔️ 함수 선언식 ( 호이스팅 O )
: 함수가 코드 실행 전에 메모리에 올라갑니다. → 선언 전 호출 가능 !
sayHello(); // 호출 가능
function sayHello() {
console.log("Hello!");
}
✔️ 함수 표현식 ( 호이스팅 X )
: 변수만 호이스팅, 나머지는 호이스팅 되지 않음 → 선언 전 변수 값은 undefined, 호출하면 에러 !
- 함수 할당 시점에 메모리에 등록됩니다.
sayHi(); // TypeError 발생 !!
const sayHi = function () {
console.log("Hi!");
};
함수 선언식 | 함수 표현식 | |
호이스팅 여부 | O | X |
메모리 할당 시점 | 코드 실행 전 | 함수가 할당될 때 |
'웹 > JavaScript' 카테고리의 다른 글
[JS] JavaScript 특징에 대해 알아보자! (1) | 2025.03.13 |
---|