○ 함수 (Function, Method) ★★★★★
- 일정한 기능을 가지고 있다
- 함수는 정의(작성)하고, 함수를 호출함으로써 실행된다
- 함수 정의 : function 함수명( ){ 코드 }
- 함수 호출 : 함수명( )
○ 함수작성 시 고려 사항
- 매개변수(parameter)가 있는지?
- 리턴값(return)이 있는지?
① 전달값(argument value)이 없는 경우
//함수정의
function test1() {
document.write("KOREA");
} //test1() end
function test2() {
document.write("SEOUL");
} //test2() end
//함수호출
test1(); //"KOREA" 본문에 출력
test2(); //"SEOUL" 본문에 출력
② 전달값(argument value)이 있는 경우
// 함수정의
function test3(a) { //a는 parameter(매개변수)
document.write(a+5); //매개변수의 자료형은 없다
} //test3() end
function test4(a, b, c) {
document.write(a + ",");
document.write(b+c);
} //test4() end
//함수호출
test3(7); //12
test4(50, 60, 70); //50,130
③ 리턴값이 있는 경우
- 리턴값: 값을 가지고 함수를 호출한 시점으로 되돌아 온다
- 리턴값은 1개만 올 수 있다
- 형식) return 값;
//함수정의
function test5(a, b){
var sum=a+b;
return sum;
} //test5 end
function test6(){
document.write("KOREA");
return; //맨 마지막 return명령어는 생략 가능
} //test6 end
//함수호출
var result=test5(3, 5);
document.write(result); //8
test6(); //"KOREA"
④재귀적 함수 호출
- 자신이 자신의 함수를 호출할 수 있다
//함수작성(팩토리얼 구하는 함수)
function test7(f){
if(f==0){
return 1; //f가 0이 되는 순간 자신의 함수를 부르는 것을 멈춤
}else{
return f*test(f-1); //재귀적 함수 호출
}//if end
} //test7() end
//함수호출
document.write(test(3)); //6=3*2*1
○ 변수의 유효 범위
- 지역변수(local variable) : function함수내에 선언된 변수는 함수 내에서만 사용가능하다
- 전역변수(global variable) : function함수외부에서 선언된 변수로 모든 함수 내에서 그 값을 공유
var one="하나"; // 전역변수
function test1(){
alert("one : " + one);
alert("two : " + two);
alert("three : " + three);
var uid="SOLDESK"; // 지역변수
alert(uid);
alert(upw); // 에러: upw is not defined(undefined)
} //test1 end
var two="둘"; // 전역변수
function test2(){
var two="두번째";
alert("one : " + one);
alert("two : " + two); // >>두번째: 지역변수의 우선순위가 더 높다
alert("three : " + three);
var upw="1234"; // 지역변수
alert(upw);
} //test2 end
var three="셋"; // 전역변수
● PRACTICE 연습문제
- 함수 관련 연습문제
Q1) #기호 100번 출력하기
Q2) 윤년, 평년을 구하시오
//Q1
function hundred(ch, num) {
for(a=1; a<=num; a++){
document.write(ch);
}//for end
}//hundred() end
hundred("#", 100); //함수호출
//Q2
function leap(year){
if(year%4==0 && year%100!=0 || year%400==0){
return true;
}else{
return false;
}//if end
}//leap() end
if(leap(2022)){//함수 호출
document.write("윤년");
}else{
document.write("평년");
}//if end
'Frontend > JavaScript' 카테고리의 다른 글
16. JavaScript 내장객체 (0) | 2022.05.06 |
---|---|
15. JavaScript Date 객체 (디지털 시계 만들기) (0) | 2022.05.04 |
13. JavaScript 연습문제 모음 (Array) (0) | 2022.05.02 |
12. JavaScript 배열(Array) (0) | 2022.05.02 |
11. JavaScript 연습문제 모음 (이중 반복문, 조건문) (0) | 2022.04.29 |
댓글