함수
변수에는 데이터만 저장할 수 있고, 코드는 저장할 수 없습니다. 하지만 함수를 사용하면 코드를 메모리에 저장했다가 필요할 때 마다 호출하여 사용할 수 있습니다. 예를 들어 다음 그림의 TV 리모컨을 보면 각 채널의 버튼이 있습니다. 그리고 각 버튼에는 TV의 해당 채널로 바꿀 수 있는 코드가 저장되어 있죠. 이 코드는 사용자가 리모컨의 버튼을 눌러(호출)야만 실행됩니다. 이때 각 TV 리모컨의 버튼은 함수를 저장하고 있으며 버튼을 누를 때마다 함수가 호출 된다고 할 수 있습니다.
쉽게 말해, 함수란 한 마디로 프로그램의 코드를 저장한 공간이라고 할 수 있습니다. 함수를 사용하면 코드를 메모리에 저장했다가 필요할 때마다 호출하여 사용할 수 있죠.
선언적함수
function(){ 자바스크립트 코드; }함수명;
위와 같은 함수를 선언적 함수라고 하며, 함수를 만드는 일반적인 방식으로 익명 함수와 달리 특정한 이름을 가지고 있습니다. 함수를 사용하여 코드를 저장한 것을 '함수 정의문'이라고 한다. 변수를 선언할 때 var 키워드를 사용한 것처럼 함수에서는 funciton 키워드를 사용해 변수를 선언한다.
익명함수
참조변수=function(){ 자바스크립트 코드; }
위처럼 함수명이 없는 함수를 익명함수라고 합니다.
아래 예제는 선언적 ㅎ마수와 익명 함수를 변수에 참조한 예 입니다.
<script> var count = 0; myFnc(); function myFnc() { count++; document.write("hello" + count, "<br>"); } myFnc(); var theFnc = function() { count++; document.write("bye" + count, "<br>"); } theFnc(); </script>
매개변수 함수
기본 함수 정의문은 함수 안에 있는 코드를 실행할 때 단순히 함수명으로 호출해서 코드를 실행했습니다. 즉 함수를 호출할 때 값을 전달할 수 없었습니다. 하지만 매개변수가 있는 함수 정의문은 함수를 호출할 때 전달하고자 하는 값을 입력하여 호출할 수 있습니다. 이렇게 전달된 값은 매개변수가 받아 함수 정의문에서 사용할 수 있게 됩니다.
다음은 함수를 호출할 때 값을 전달하는 기본형입니다.
<script> function myFnc(name, area) { document.write("안녕하세요." + name + "입니다", "<br>"); document.write("사는 곳은" + area + "입니다", "<br><br>"); } myFnc("홍당무", "서울"); //안녕하세요. 홍당무입니다. //사는 곳은 서울입니다. myFnc("깍두기", "부산"); <script>
리턴값 함수
function 함수명() {
자바스크립트 코드; - ②
return 데이터(값); - ③
자바스크립트 코드2; - ①
}
var 변수 = 함수명();
return 문은 함수에서 결괏값을 반환할 때 사용합니다. 그리고 함수에서 return 문이 실행되면 반복문의 break 문과 비슷하게 코드가 강제로 종료됩니다. 다시 말해 함수 정의문에 return문이 사용되면 함수를 호출했을 때 결괏값을 반환합니다.
쉽게 말해, 함수를 호출했던 위치로 되돌아가라는 의미라고 보면 되겠습니다.
기본형
function 함수명(){ 자바스크립트 코드1; return 데이터(값); 자바스크립트 코드2; } var 변수 = 함수명();
<script> functoin testAvg(arrData){ var sum = 0; for (var i = 0; i < arr data.length; i++){ sum += Number(prompt(arrData[i] + "점수는?", "0")); } var arrSubject = {"국어", "수학"}; var result = testAvg(arrSubject); document.write("평균점수는" + result + "점입니다"); <script>