Post

[JavaScript] 함수 (Function)

[JavaScript] 함수 (Function)

함수 선언과 호출 형식

1
2
3
4
5
6
function 함수명(매개변수1, 매개변수2, ···){ //함수선언
  실행 문장;
  return 반환값;
}

함수명(인자1, 인자2, ···); //함수 호출
  • 인자: 함수를 호출할 때 전달하는 입력값
  • 매개변수: 함수 호출문에서 전달한 인자를 받기 위해 선언된 변수
  • function: 함수를 선언할 때 사용하는 키워드
  • return: 함수에서 수행한 결과값을 반환할 때 사용하는 키워드


함수 선언 - 일반적인 방법(기본 함수)

기본 함수 호출하기

1
2
3
4
5
6
7
8
var text1 = "함수 선언 전 호출";
var text2 = "함수 선언 후 호출";
printMsg(text1); //함수 선언 전 호출

function printMsg(msg){ //함수 선언
  document.write("함수 호출 메세지 : "+ msg +"<br>");
}
printMsg(text2);

onclick 속성값으로 함수 호출하기

1
2
3
4
5
6
7
8
<script>
  // onclick 속성값으로 함수 호출하기
  function printMsg(name, age){ //함수 선언
    document.write("학생 이름 : <b>"+ name +"</b><br>");
    document.write("학생 나이 : <b>"+ age +"</b><br>");
  }
</script>
<button type="button" onclick="printMsg('홍길동',21)">학생정보</button>

함수 표현식으로 작성하는 방법(무명함수)

1
2
3
4
var 변수명 = function(매개변수1, 매개변수2, ···){ // 함수 선언
  실행 문장;
}
변수명(인자1, 인자2, ···); //함수 호출

무명 함수 호출하기

1
2
3
4
5
6
7
8
9
//무명 함수 호출하기
var text1="함수 선언 전 호출 에러";
var text2="함수 선언 후 호출만 가능";

//printMsg(text1); //함수 선언 전 호출 에러
var printMsg=function(msg){ //함수 객체 선언
  document.write("함수 호출 메세지 : "+ msg +"<br>");
}
printMsg(text2); //함수 선언 후 호출 가능


함수 선언문과 호출문

변수를 이용하여 반환값 출력하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var result;
function add(name, n){
  document.write(name +"학생이 1부터"+ n +"까지 덧셈 수행<br>");
  var sum = 0;
  for(var i=1; i<=n; i++){
    sum += i;
  }
  return sum;
}

result=add('홍길동', 10);
document.write("결과 : "+ result +"<br>");
result=add('이영희', 100);
document.write("결과 : "+ result +"<br>");

서로 다른 변수로 같은 함수의 반환값 출력하기

1
2
3
4
5
6
7
function add(x,y){
  return x + y;
}
var calSum = add;  // 함수를 변수에 할당
var addUp = add;  // 함수를 변수에 할당
document.write("결과 값 : "+ calSum(5, 10) +"<br>");
document.write("결과 값 : "+ addUp(3, 20) +"<br>");


인자와 매개 변수

1
2
3
4
5
Function 함수명(매개변수1, 매개변수2, 매개변수3){  // 함수 선언
  실행 문장;
  return 반환값;
}
result=함수명(인자1, 인자2, 인자3);  // 함수 호출

자바스크립트 코드의 실행 순서 살펴보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function add(){
  var sum = 1;
  return sum;
}
function add(x){
  var sum = x + 1;
  return sum;
}
function add(x,y){
  var sum = x + y;
  return sum;
}
function add(x,y,z){
  var sum = x + y + z;
  return sum;
}

var r0=add();
var r1=add(1);
var r2=add(2,3);
var r3=add(4,5,6);
var r4=add(7,8,9,10);

document.write("함수 호출 인자 없음 : "+ r0 +"<br>");
document.write("함수 호출 인자 부족 : "+ r1 +"<br>");
document.write("함수 호출 인자 부족 : "+ r2 +"<br>");
document.write("정상적인 함수 호출 : "+ r3 +"<br>");
document.write("7, 8, 9만 인자값으로 적용 : "+ r4 +"<br>");

인자의 개수가 적을 때 처리 방법 살펴보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function add(x,y,z){
  var sum;
  if((y===undefined) && (z===undefined)){
    sum = x;
  } else if(z===undefined){
    sum = x + y;
  } else{
    sum = x + y + z;
  }
  return sum;
}

var r1=add(2);
var r2=add(2,3);
var r3=add(4,5,6);

document.write("함수 호출 인자 부족 : "+ r1 +"<br>");
document.write("함수 호출 인자 부족 : "+ r2 +"<br>");
document.write("정상적인 함수 호출 : "+ r3 +"<br>");

인자를 arguments 객체로 처리하기

1
2
3
4
5
6
7
8
9
10
11
function add(){
  var i, sum = 0;
  for(i=0; i<arguments.length; i++){
    sum = sum + arguments[i];
  }
  document.write("수행 결과 : "+ sum +"<br>");
}
add(2, 3);
add(2, 3, 4);
add(4,5,6,7,8);
add(1,2,3,4,5,6,7,8,9,10);
This post is licensed under CC BY 4.0 by the author.