반응형
목차
1. 함수 선언문
2. 함수 표현식
3. 함수 프로퍼티
4. 참고
1. 함수 선언문
function isHoliday(work) {
if (work) {
return false;
}
return true;
}
많이 사용하는 함수 선언 방식 중 하나입니다.
주요 특징으로는 다음과 같은 것들이 있습니다.
- 함수를 참조하는 식별자가 생성됩니다.
- 함수 호이스팅이 발생합니다.
- 함수(함수 객체) 프로퍼티를 가지고 있다.
함수 호이스팅이란, 호이스팅(hoisting)이란 말처럼 함수가 위로 끌어 올려지는 것을 말하는데요.
자바스크립트에서 런타임 이전에 함수를 미리 생성하기 때문에, 함수가 선언된 스코프에서 언제든지 실행할 수 있습니다.
함수 선언 전에 함수를 실행할 수 있습니다.
isHoliday(false); // true
function isHoliday(work) {
if (work) {
return false;
}
return true;
}
전역 스코프에서 isHoliday라는 함수를 선언했기 때문에, 전역 스코프 상단에서 함수를 실행할 수 있습니다. (함수 호이스팅)
2. 함수 표현식
함수를 변수에 넣어서 사용하는 것을 의미합니다.
자바스크립트에서 함수는 객체이기 때문에 변수에 할당할 수 있습니다.
일반적으로 익명 함수를 사용해서 함수 표현식을 사용합니다.
const isHoliday = function (work) {
if (work) {
return false;
}
return true;
}
isHoliday(false); // true
함수 표현식에서는 함수 호이스팅이 발생하지 않습니다.
변수 할당은 런타임에 발생하기 때문에 함수 표현식으로 생성된 함수도 그 시점에 생성됩니다.
3. 함수 프로퍼티
함수는 함수만 가질 수 있는 프로퍼티가 있습니다.
arguments, caller 등의 프로퍼티가 있습니다.
참고
1. 모던 자바스크립트 Deep Dive
반응형
'JavaScript' 카테고리의 다른 글
[Javascript] 쓰로틀링(throttle), 디바운싱(debounce)을 헷갈리지 말자! (0) | 2023.03.15 |
---|---|
[Javascript] 2차원 배열 만들기 + 2차원 배열 순회 (0) | 2022.10.15 |
[Javascript] 스코프 체인이란..? (0) | 2022.09.10 |
[Javascript] 배열 메소드 - forEach, map (순회 목적) (0) | 2022.07.31 |
[Javascript] 비동기 함수들이 동작하는 원리 (0) | 2022.04.13 |