자바스크립트 기본 - 함수
함수 - https://opentutorials.org/course/743/4729
함수(function)는 하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 ☆재사용성☆을 높여준다.
함수가 없다면? - 특정한 로직을 여러군데 사용하고 있다고 가정했을 때, 로직이 수정되면 사용되는 곳을 모두 다 수정해주어야 한다.
하지만 특정한 로직을 함수로 만들어 놓고 사용되는 곳에 넣어놓는다면 함수안에 있는 로직을 변경하면 사용되는 곳에 있는 함수들도 다 수정이 된다. 즉 재사용성, 유지보수가 용이하다.
a.함수의 형식
function 함수명( [인자...[,인자]] ){
코드
return 반환값
}
문법만으로는 함수의 형식을 체감하기 힘드므로 직접 사용해보아야 한다.
b. 함수의 정의와 호출
예제
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
/*function 함수명( [인자...[,인자]] ){
코드
return 반환값
}*/
//함수를 정의한 것
function numbering(){
i = 0;
while(i < 10){
document.write(i);
i += 1;
}
}
numbering();
//괄호 ()가 있어야 함수로 인식, 괄호가 없이 numbering만 쓰면 자바스크립트는 변수로 인식.
//함수를 호출하기 때문에 함수numbering 중괄호가 실행됨.
</script>
</body>
</html>
예제를 크롬에서 열게 되면 함수를 실행한 결과가 페이지에 나타난다.
경고창 답
0123456789
c. 입력과 출력
함수의 핵심은 입력과 출력이다. 입력에 따라 출력이 달라진다. return은 함수에서 입력과 출력의 역할을 한다
return
예제2
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
//return의 역할은 1.함수를 끝내는 것과 2.return뒤의 값을 해당 함수의 출력값으로 반환한다.
function get_member1(){
return 'egoing';
}
function get_member2(){
return 'k8805';
}
alert(get_member1()); //함수가 실행되고 return값인 egoing값이 반환되어 alert('egoing');이 호출된다.
alert(get_member2()); //함수가 실행되고 return값인 k8805값이 반환되어 alert('k8805');이 호출된다.
</script>
</body>
</html>
예제를 크롬에서 열게 되면 함수를 실행한 결과가 페이지에 나타난다.
경고창 답
1. egoing
2. k8805
※만약 함수안에 return값이 여러개라면 첫번째 있는 return값만 반환되고 나머지 값들은 무시된다.
- 인자
인자(argument)는 함수로 유입되는 입력값이다.
예제3
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
//주석의 순서대로 읽으면 이해하기 쉬움
function get_argument(arg){ //1.arg는 함수내에서 매개변수, parameter로 선언된다.
return arg*1000; //3.arg=1 일 때 결과값으로 1000을 반환.
}
alert(get_argument(1)); //2.함수 괄호안에 있는 1은 인자. 함수가 호출되면서 arg=1 이라는 값이 함수내에 선언된다.
//4.반환된 값 1000은 alert(1000);으로 호출된다.
alert(get_argument(2));
</script>
</body>
</html>
예제를 크롬에서 열게 되면 함수를 실행한 결과가 페이지에 나타난다.
경고창 답
1. 1000
2. 2000
※인자는 예제처럼 1개가 아닌 2개 이상의 복수로도 사용할 수 있다. 하지만 함수내의 return값은 하나만 가질 수 있다.
d. 함수를 정의 하는 다른 방법
변수에 함수를 넣어서 정의하는 방법
예제4
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
var numbering = function (){ // numbering 이라는 변수에 function으로 시작하는 값을 대입한 것
i = 0;
while(i < 10){
document.write(i);
i += 1;
}
}
numbering(); //변수는 함수를 갖게 되므로 함수처럼 정의하여 사용할 수 있음
</script>
</body>
</html>
예제를 크롬에서 열게 되면 함수를 실행한 결과가 페이지에 나타난다.
경고창 답
0123456789
함수의 정의와 호출을 함께하는 방법 (익명함수)
일회성으로 호출하는 경우에 사용되는 방법
예제5
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
(function (){ // 이름이 없어도 되는 함수표현방식
i = 0;
while(i < 10){
document.write(i);
i += 1;
}
})(); // 함수를 괄호로 감싼 다음 괄호를 붙여줌으로써 함수가 정의되고 호출됨. (function~)();
</script>
</body>
</html>
예제를 크롬에서 열게 되면 함수를 실행한 결과가 페이지에 나타난다.
경고창 답
0123456789