- 함수 -
함수는 프로그램 안에서 반복작업이나 계산을 한 덩어리로 묶은 것이다.
Lesson 1 | |
unite2Message()함수 |
두 개의 메세지를 줄을 바꿔서 표시한다. |
alert('Hello World'); |
함수는 오브젝트를 처리하는 메서드와 비슷하다. |
function unite2Message(Msg 1, Msg2) { message = Msg1 + '\n' + Msg2; return message; } |
function: 함수 선언 함수는 함수 안에서의 처리에 필요한 정보를 호출한 곳으로부터 받을 수 있다. 이것을 인수 혹은 파라미터 라고 한다.=> Msg1, Msg2 |
function writeHello() { document.write('Hello'); } |
인수가 필요 없을 때는 비워둔다. |
Lesson 2 |
|
function funcNum(n) { document.write("인수값은",n,"<br>"); } a=10; funcNum(5); funcNum(a); |
함수의 정의 함수의 호출 funcNum(5); |
a='Coffee'; } b='Tea'; getMenu(b); | 오브젝트 이외의 값을 인수로 전달할 때는 '값 전달'이라는 방식으로 전달한다. |
function getMenu(a) getMenu(b); | 함수 내부에서 인수의 값을 변경 a[0]='Water' 하면, 외부에서도 값이 바뀐다. |
Lesson 3 | |
a = 1; function showNum() { var a; a =1; document.write(a); } showNum(); document.write(a); | 함수 안에서 { } 안에 var를 붙여서 선언한 변수는 로컬변수(지역변수)이다. 지역변수는 그 변수를 선언한 함수 안에서만 사용할 수 있다 변수의 유효범위를 Scope라고 부른다. |
a =1; function showNum() { var a; a = 1; document.write(a); } showNum(); document.write(a); | 글로벌 변수 혹은 전역변수는 함수ㅡ이 밖이나 안에서 참조나 변경을 할 수 있다. 함수 안에서 var를 붙이지 않고 변수를 사용하면 전역변수가 된다. 함수 안에서 글로벌 변수와 같은 이름의 변수를 선언한 경우 글로별 변수쪽이 더 유요하다. 한 함수 안에서는 같은 이름의 글로벌 변ㅅ를 사용할 수 없다. |
scope.html ... <script...> a=1; </script> ... <script> alert(a); </script> ... <script ... src="abc.js"> </script> abc.js document.write(a); | 전역 변수는 선언한 파일뿐만 아니라 다른 파일에서도 사용할 수 있다. |
gawibawibo.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>가위바위보</title> <script type="text/javascript" src="js/judgement.js"></script> <script type="text/javascript"> var strMsg0 = "가위바위보 시작할까요?"; function init() { if(!confirm(strMsg0)){ document.getElementById("btnGawi").disabled=true; document.getElementById("btnBawi").disabled=true; document.getElementById("btnBo").disabled=true; } } function myChoice(gawibawiboUser){ var strLocal = myResult(gawibawiboUser); alert(strLocal); } </script> </head> <body> <form name="form1" onload="init()"> <input type = "button" id="btnGawi" onclick="myChoice(0)" value="가위"> <input type = "button" id="btnBawi" onclick="myChoice(1)" value="바위"> <input type = "button" id="btnBo" onclick="myChoice(2)" value="보"> <br> </form> </body> </html>
| getElementById() 메서드 - id 속성을 붙인 요소를 추출한다. disabled 프로퍼티 - 폼을 무효화한다. |
judgement.js var strMsg1="비겼습니다."; var strMsg2="이겼습니다."; var strMsg3="무승부"; function myResult(gawibawiboUser){ var gawibawiboComp = Math.floor(Math.random()*3); if(gawibawiboComp==gawibawiboUser) return strMsg1; else if((gawibawiboComp+1)%3 == gawibawiboUser) return strMsg2; else return strMsg3; } | Math.floor(Math.random()*3); Math.random() - 0이상 1 미만의 실수로 된 난수 발생한다. Math.floor - 소수점 이하 절하한다. |
Practice |
|
1. 국어, 영어, 수학 성적을 인수로 받아 평균을 구하는 함수를 만들라. |
function testAverage(a,b,c,) { avg = (a+b+c) / 3; return avg; } korean = 100; english=100; math=100; average = parseInt(testAverage(korean, english, math)); document.write(average); *parseInt()는 정수를 반환하고 소수점 이하는 버린다. |
2. 5명 학생의 국어, 영어, 수학 성적의 평균과 과목별 평균을 구하라. 함수 및 배열 사용하라. | cntStudent = 5; cntSubject =3; function calcStudentAverage(k,e,m){ avg = parseInt((k+e+m)/cntSubject); return avg; } function calcSubjectAverage(arr){ sum=0; for(i=0; i<cntStudent; i++){ sum+=arr[i]; } avg = parseInt(sum/cntStudent); return avg; } studentName = ["김ㅇㅇ", "박ㅇㅇ", "유ㅇㅇ", "진ㅇㅇ", "병ㅇㅇ"]; subject = ["국어", "영어", "수학"]; kor = [88, 99, 44, 55, 11]; eng = [88, 99, 33, 54, 12]; math = [44, 22, 33, 55, 66]; document.write("개인 평균 <br>"); for(i=0; i<cntStudent; i++){ myAvg = calcStudentAverage(kor[i], eng[i], math[i]); document.write(studentName[i] + "의 평균은" + myAvg+"점이다.<br>"); } subAvg = new Array(0,0,0); a=calcSubjectAverage(kor); subAvg[0]=a; a=calcSubjectAverage(eng); subAvg[1]=a; a=calcSubjectAverage(math); subAvg[2]=a; document.write("과목별 평균<br>"); for(i=0; i<cntSubject; i++){ document.write(subject[i]+"점수 평균은"+subAvg[i]+"점이다.<br>"); } |
3. 다음 출력 값을 구하라. a = 1; function showNum() { var a; a = 2; document.write(a); } showNum(); document.write(a); |
2 1 |
댓글