프로그램 안에서 여러번 사용할 함수라면 입력값을 바꾸지 못한다는 것은 매우 비효율적이다. 한가지 종류의 옷만 빨 수 있는 세탁기가 쓸모 없는 것처럼 말이다.
그래서 사용자가 지정하는 두 수를 더하는 함수를 바꿀 수 있다면 훨신 쓸모있을 것이다. 이를 위해 알아야 할 개념이 매개변수와 인수 이다.
1 function addNumber(a,b) {
2 var sum = a+b;
3 console.log(sum);
}
1번줄에 적힌 괄호 안의 a,b 가 매개 변수이다.
addNumber(2,3);
5
addNumber(10,20);
30
그리고 다음과같이 적으면 이러한 결과가 나오는데 여기서에서 괄호안의 숫자가 인수가 되겟다.
인수란 함수를 실행할 때 매개변수로 넘겨주는 값을 말한다.
그리고 이것을 응용하면
1 var num1 = parseInt(prompt("첫번째 숫자는?"));
2 var num2 = parseInt(prompt("두번째 숫자는?"));
3 addNumber(num1,num2);
4 function addNumber(a,b) {
5 var sum = a+b;
6 alert("두수를 더한 값은 " + sum + " 입니다.");
}
P.S) parseInt() 함수는 프롬프트 창에 입력한 값을 정수로 바꾸는 함수입니다. parseInt() 대신 Number() 함수를 사용해도 가능
1 var num1 = parseInt(prompt("첫 번째 숫자 : "));
2 var num2 = parseInt(prompt("두 번째 숫자 : "));
3 var result = addNumber(num1, num2);
4 alert("두 수를 더한 값은 " + result + "입니다.");
5 function addNumber(a, b) {
6 var sum = a + b;
7 return sum;
}
다음의 코드의 실행 순서는 1-2-5-6-7-3-4 이다
addNumber() 함수는 함수안에서 계산 결과값을 표시했다. 하지만 두수를 더한 결괏값을 다른 계산에 적용하거나 콘솔창이 아닌 다른 곳에 표시해야 할 경우도 있따. 이렇게 함수를 실행 후 결과가밧을 함수 밖으로 넘기는 것을 함숫값을 반환한다. (return) 라고 한다.
익명함수는 말그대로 이름이 없는 함수이다.익명함수를 선언할때는 이름을 붙이지 않는다. 익명함수는 함수자체가 식(expression) 이기 때문에 익명함수를 변수에 할당할 수 있다.
var add = function(a,b){
return a+b ;
}
undefined
var sum = add(10,20);
sum
30