솔미는 성장중

[JS] 함수 : 호이스팅 (함수 선언문, 함수 표현식) 본문

JavaScript/함수

[JS] 함수 : 호이스팅 (함수 선언문, 함수 표현식)

solming 2023. 7. 18. 11:49
728x90

함수 선언문

function example() { }

 

함수 표현식

: 변수에 함수가 들어감

const example = function () { }

 

호이스팅

: 함수 선언부가 유효 범위의 최상단으로 끌어올려지는 현상

: 함수 선언문에서만 일어나고 함수 표현식에서는 작동하지 않음.

 

1) 함수 선언문

function example() { 
	console.log('테스트중입니다!')
}
example()
//테스트중입니다!
example()

function example() { 
	console.log('테스트중입니다!')
}
//테스트중입니다!

이것이 호이스팅.

함수 선언문을 사용하면 어떤 위치에서 함수를 호출해도 문제 없이 작동하는 모습이다!!

 

 

2) 함수 표현식

 

example()

const example = function () { 
	console.log('테스트중입니다!')
}
//Error

Cannot access 'example' before initialization at Object.adjPd


 

cf) 함수 표현식 방식으로 새로운 이름을 할당하면 호출할 때도 그 이름을 사용해야한다.

아래 예시에서 example()을 통해 호출하려고 하면 에러가 발생한다.

(표현식이니까 호출은 표현식 아래쪽에서!)

const test = function example() { 
	console.log('테스트중입니다!')
}

test()
//테스트중입니다!

 

728x90

'JavaScript > 함수' 카테고리의 다른 글

[JS] 함수 : 재귀  (0) 2023.07.18
[JS] 콜백 (callback) 함수 (예시 포함)  (0) 2023.07.18
[JS] 즉시 실행 함수 (IIFE)  (0) 2023.07.18
[JS] 함수 선언 : 화살표 함수  (0) 2023.07.18
[JS] 함수 : 구조 분해 할당  (0) 2023.07.18