기명함수와 익명함수

예동·2023년 8월 18일

노트

목록 보기
8/10

기명함수

function printName() {
	console.log("lumpyspaceyz");
}
  • 런타임(RunTime) 이전에 선언 및 할당되는 함수
  • 이름이 있는 함수
  • 함수 선언식 종류
  • 함수 전체가(선언부와 할당부) 호이스팅(hoisting)의 영향을 받음
  • 호이스팅의 영향을 받으므로 호출의 위치와 구현 위치 간에 연관관계가 없음
  • 재사용될 기능에 주로 사용됨

익명함수

const printName = function() {
	console.log("lumpyspaceyz");
}
  • 런타임(RunTime)에 할당되는 함수
  • 이름이 없는 함수
  • 함수 표현식 종류
  • 호이스팅(hoisting)의 영향을 받지 않음
  • 선언부만 호이스팅의 영향을 받으므로 호출의 위치와 구현의 위치 간에 순서가 알맞아야 하고, 한 번만 사용하는 기능에 주로 사용됨

콘솔 테스트

console.log("첫 번째 실행");
func();
var func = function() {
    console.log("기명함수 실행");
}
function func() {
    console.log("익명함수 실행");
}
console.log("두 번째 실행");
func();

// 결과
첫 번째 실행
익명함수 실행
두 번째 실행
기명함수 실행

🙇🏻‍♀️ 기명함수는 호출의 위치와 구현의 위치 간에 연관관계가 없기 때문에 첫 번째 호출에서 아직 선언되지 않은 기명함수가 호출될 수 있었고,
익명함수는 호출의 위치와 구현의 위치 간에 연관관계가 있기에 익명함수 선언이 완료된 다음인 두 번째 호출에서는 익명함수가 호출됨

정리

기명함수(= 함수 선언식) 선언 전 호출 가능

익명함수(= 함수 표현식) 선언 후 호출 가능

0개의 댓글