함수(function)
란 하나의 로직을 재실행 할 수 있도록 하는 것으로, 코드의 재사용성을 높여준다.
함수는 아래와 같이 작성하는 것이 기본적이다.
function 함수명 ( [인자...,[인자]]){
코드;
return 반환값;
}
함수의 소괄호 안에는 인자라는 값이 차례로 들어오는데,
이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수다. 인자는 경우에 따라 생략할 수 있다.
예시 코드는 아래와 같다.
function numbering (){
i = 0;
while(i < 10){
console.log(i);
i += 1;
}
}
numbering(); //함수호출
numbering이라는 함수가 정의되어있고, 이는 0부터 9까지 출력하게 된다.
함수가 없다면 0부터 9까지 출력하는 코드를 5번 반복하라고 할 때, 위의 함수 내부 내용을 5번 입력해야 한다. 이 때 수정이 필요하다면 5개의 함수에서 하나씩 수정이 필요하다.
아래와 같이 함수를 사용하면 반복 작업에 용이하다.
function numbering (){
i = 0;
while(i < 10){
console.log(i);
i += 1;
}
}
numbering();
numbering();
numbering();
numbering();
numbering(); //5번 호출
for(let i = 0; i < 5; i++){
numbering();
} //반복문을 사용할 때도 용이
반복문은 그 당시의 반복에만 사용되지만, 함수는 한 번 만들어두면 언제든지 어디든지 재사용
가능하다. 또한 유지 보수
가 용이하다는 특징도 있다. 코드가 불필요하게 길어질 이유도 없으니 가독성
측면에서도 이점을 보인다.
함수의 인자
는 함수로 유입되는 입력 값을 의미한다. 인자로 어떤 값을 전달하느냐에 따라 함수가 반환하는 값이나 메소드의 동작 방법을 다르게 할 수 있다.
function get_argument(arg){
return arg*1000;
}
alert(get_argument(1)); //1000 알림
alert(get_argument(2)); //2000 알림
이때의 arg는 매개변수(parameter)
1,2와 같이 받게 되는 값들을 인자(argument)
라고 한다. 두 가지를 섞어서 표현하는 경우도 있다.
아래 예제와 같이 복수의 인자를 가질 수도 있다.
function get_argument(arg1, arg2){
return arg1 + arg2;
}
alert(get_argument(10, 20)); //30 알림
alert(get_argument(20, 30)); //50 알림
함수의 출력은 return
키워드를 사용하여 표현한다. return은 뒤에 따라오는 값을 함수의 결과로 반환하는 동시에 함수를 종료 시킨다.
function get_member1(){
return 'ming';
}
function get_member2(){
return 'dang';
}
alert(get_member1());
alert(get_member2()); //'ming', 'dang' 알림
위 예제에서 get_member1 함수의 return 값은 'ming', get_member2의 return 값은 'dang'이다.
자바스크립트에서 함수를 정의하는 방법은 여러가지가 있다.
아래 예제를 통해 몇 가지를 확인할 수 있으며, 함수선언식이 일반적으로 가장 많이 사용된다.
//함수선언식
function greeting(name) {
console.log('환영합니다!'+name+'님');
}
greeting('ming');
//함수표현식 (명명)
let numbering = function numbering (){
i = 0;
while(i < 10){
console.log(i);
i += 1;
}
}
//함수표현식 (익명)
let numbering = function (){
i = 0;
while(i < 10){
console.log(i);
i += 1;
}
}
//즉시실행표현식
(function numbering (){
i = 0;
while(i < 10){
console.log(i);
i += 1;
}
})();