목차
1. 함수란?
2. 함수의 종류
1. 함수란?
- 특정 기능을 수행하는 코드를 묶어 필요할 때마다 사용할 수 있도록 한 코드블록
- 매개변수를 통해 인자값을 전달 받을 수 있다.
//문법
//1. 함수 선언
function 함수이름(매개변수1,매개변수2){
//실행할 코드
}
//2. 함수 호출
함수이름(인자값1,인자값2);
function sum(number1,number2){
console.log(number1+"+"+number2+"=",number1+number2);
}
sum(1,2);
/*
결과값
1+2=3
*/
함수는 특정 기능을 하는 코드를 분리하여 재사용을 가능하게 하여 필요할 때 호출해 사용할 수 있다. 함수는 외부에서 데이터를 전달받는 매개변수를 가질 수 있으며 그 개수는 필요한만큼 지정할 수 있다. 매개변수를 통해 전달받은 데이터는 연산이나 특정 기능에 사용할 수 있다.
함수를 선언한다고 해서 자동으로 수행하는 것은 아니고 필요한 위치에서 호출하여 사용한다. 호출을 할 때는 함수 내에서 사용할 수 있는 데이터인 인자값을 추가해줄 수 있다.
함수 호출시 전달되는 인자값의 순서에 따라 매개변수가 값을 전달받을 수 있으며 전달되는 인자값이 매개변수의 수보다 작으면 나머지 매개변수는 undefind로 초기화되고 인자값이 매개변수보다 많으면 값을 전달받을 매개변수가 없으므로 데이터는 소멸된다.
//인자값이 매개변수보다 적은 경우
function print(num1,num2){
//num2에 전달되는 인자값이 없어 num2는 undefind로 자동 초기화
console.log('매개변수의 num1의 값 : '+num1);
console.log('매개변수의 num2의 값 : '+num2);
}
print(1);
/*
결과
매개변수의 num1의 값 : 1
매개변수의 num2의 값 : undefind
*/
function print2(num1,num2){
//인자값 3을 받을 매개변수가 없어 3은 소멸
console.log('매개변수의 num1의 값 : '+num1);
console.log('매개변수의 num2의 값 : '+num2);
}
print(1,2,3);
/*
결과
매개변수의 num1의 값 : 1
매개변수의 num2의 값 : 2
*/
2. 함수의 종류
1) 일반함수
- function 키워드를 통해 만들어진 이름을 가진 함수
//함수 선언
function fn1(){
//실행할 코드
}
//함수 호출
fn1();
2) 익명함수
- 이름이 없는 함수
let fn1 = function(){
//실행할 코드
}
fn1();
함수에 직접적인 이름이 없기에 익명함수라고 불리며 호출하려면 함수값을 가진 변수를 통해 함수를 호출하면 된다. 주로 1회성으로 사용하여 메모리를 절약하기 위해 사용된다.
3) 즉시 실행 함수
- 따로 호출하는 구문없이 선언과 동시에 실행을 하는 함수
(function (str) {
console.log(str);
}("즉시실행"));
함수가 바로 호출되게 ()를 작성해주고 인자값이 필요하면 추가해줄 수 있다. 보안을 위해 변수를 전역으로 선언하는 것을 막거나 특정 값을 초기화 하기 위해 사용된다.
4) 중첩 함수
- 함수 내에 정의되는 함수
function fn1(){
function fn2(){
//실행할 함수
}
}
함수 내에 선언된 함수로 호출을 하기 위해서는 fn1내에서 호출을 따로 진행해주어야 한다. 스코프의 영향으로 내부에 있는 변수들을 참조할 수 있다.