함수 선언식 - Function Declearations
function 함수명(){
로직
}
함수 표현식 - Function Expressions
let 함수명 = function (){
로직
}
함수 선언식 vs 함수 표현식
함수 표현식은 호이스팅에 영향을 받지 않지만, 함수 선언식은 호이스팅에 영향을 받는다.
그 이유는 자바스크립트는 초기화전 자바의 모든 함수선언문을 찾아서 생성해 둔다. 따라서 함수가 함수 선언문보다 위에 있어도 실행이 된다.
호이스팅(hoisting) : 함수를 사용할 수 있는 범위
함수 선언식
testFunction();
function testFunction(){
console.log("함수 선언문")
}
// output : 함수 선언문
함수 표현식
testFunction();
let testFunction = function(){
console.log("함수 표현식")
}
// output :ReferenceError: testFunction is not defined
'Programing > JavaScript' 카테고리의 다른 글
[js] undefined vs null (0) | 2022.11.16 |
---|---|
[JavaScript] fetch() 함수란? (0) | 2022.10.07 |
js) 메서드 call,apply,bind 를 알아보자! (0) | 2022.09.28 |
javaScript AJAX 를 사용하는 이유 (0) | 2022.02.25 |