사용자 정의 함수(function)
- 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록
- 필요할 때마다 호출하여 해당 작업을 반복해서 수행할 수 있음
- 코드를 재활용
함수 선언 2가지
1. 함수 선언식
function 함수명(매개변수1, 매개변수2, ..){
함수가 호출되었을 때 실행할 문장;
...
return 값
}
// 함수 호출
함수명(값1, 값2, ..);
2. 함수 표현식(권장)
let 또는 const 변수명 = function(매개변수1, 매개변수2, ..){
함수가 호출되었을 때 실행할 문장;
...
return 값
}
// 함수 호출
변수명(값1, 값2, ..);
디폴트 매개변수
- 매개변수의 값을 설정하는 것
- 매개변수의 값을 정하지 않으면 기본값을 변수에 저장
function 함수명(매개변수1=값1, 매개변수2=값2, ..){
함수가 호출되었을 떄 실행할 문장;
...
return 값
}
// 함수 호출
함수명();
함수명(값1, 값2, ..);
나머지 매개변수
- 생략 접두사(...)를 사용해서 특정 위치의 인수부터 마지막 인수까지 한 번에 지정할 수 있음
function 함수명(매개변수1, ...매개변수2){
함수가 호출되었을 때 실행할 문장;
...
return 값
}
// 함수 호출
함수명(값1, 값2, 값3, 값4, 값5) // 값1=매개변수1, 나머지 값 모두=매개변수2
호이스팅(hoisting)
- 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것
- var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화
- let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않음
함수 정의 인터프리팅 결과
func1(); function func1(){
} ...;
... 함수 호이스팅 }
function func1(){ ----------->
...; func1();
}
func1(); let func2;
let func2 = function(){ 변수 호이스팅 func2()
...; ----------> function func2(){
} ...
}
화살표 함수
- function 키워드를 사용하여 함수를 만드는 것보다 간단하게 표현
- 화살표 함수는 항상 익명
// 매개변수가 없을 경우
const 함수명 = () => {
함수가 호출되었을 때 실행될 문장;
...
}
const 함수명 = () => 함수가 호출되었을 때 실행될 문장;
// 매개변수가 있을 경우
const 함수명 = (매개변수1, 매개변수2, ..) => {
함수가 호출되었을 때 실행될 문장;
...
}
const 함수명 = (매개변수1, 매개변수2, ..) => 함수가 호출되었을 때 실행될 문장;
✔️ 매개변수가 1개인 경우는 소괄호를 생략할 수 있음
const 함수명 = 매개변수 => 함수가 호출되었을 때 실행될 문장;
728x90
'KDT > JavaScript' 카테고리의 다른 글
객체2(Object) (1) | 2023.04.07 |
---|---|
객체 (0) | 2023.04.06 |
배열(Array) (1) | 2023.04.05 |
반복문 (0) | 2023.04.05 |
조건문 (0) | 2023.04.05 |