함수
데이터를 저장할 때 변수를 선언하여 저장했습니다. 변수에는 데이터만 저장 할 수 있고 코드는 저장 할 수 없습니다. 하지만 함수를 사용하면 코드를 메모리에 저장했다가 필요할 때마다 호출하여 사용할 수 있습니다.
선언적 함수
함수에서는 function 키워드를 사용해서 변수를 선언합니다.
{
function 함수이름 () {
// 실행코드 작성
}
함수이름();
}
다음예제는 선언적 함수를 선언한 다음 호출하여 코드를 실행합니다.
<script>
var conunt = 0;
function myfnc(){
count++;
document.write("hello"+ count,"<br>")
}
mtfnc();
</script>
익명 함수
익명함수는 말그대로 이름이 없는 함수입니다. 따라서 익명함수를 선언하고 사용하기 위해서는 변수에 넣어서 사용하여야 합니다.
{
function () {
자바스크립트 코드;
};
}
익명함수는 위와 같은 형태로 만들어 준다음 아래와 같이 변수에 넣어서 변수 이름을 호출 해주면 됩니다.
<script>
var func = function () {
자바스크립트 코드;
}
func();
</script>
다음예제는 익명 함수를 선언한 다음 호출하여 코드를 실행합니다.
<script>
var theFnc = function () {
count++;
document.write("bye"+count,"<br>");
}
func();
</script>
매개변수 함수
매개변수가 있는 함수 정의문은 함수를 호출할 때 값을 전달 할 수 없었습니다. 하지만 매개변수가 있는 함수 정의문은 함수를 호출할 때 전달하고자 하는 값을 입력하여 호출할 수 있습니다.
다음은 함수를 호출할 때 값을 전달하는 기본형입니다.
{
function함수명(매개변수1, 매개변수2, .....데이터n){
자바스크립트 코드,
}
함수명(데이터1, 데이터2....데이터n)
}
다음은 함수를 호출했을 때 이름과 사는 지역의 데이터를 함수 정의문의 매개변수 name과 area에 각각전달하여 함수 안에 있는 실행문이 매개변수에 저장된 데이터를 불러오는 예제입니다.
<script>
fuction myFnc(name, area) {
document.write("안녕하세요" + name + "입니다.","<br>");
document.write("사는 곳은" + area + "입니다.", "<br><br>")
}
myFnc("홍당무","서울");
</script>
리턴값 함수
리턴값 함수는 함수에서 결과값을 반환할 때 사용합니다. 그리고 함수에서 return문이 실행되면 반복문의 break문과 비슷하게 코드가 강제로 종료됩니다.
다음은 리턴값 함수의 기본형입니다.
{
function함수명(){
자바스크립트 코드;
return 데이터(값);
}
var 변수 = 함수명();
}
다음은 함수 정의문 내에 작성한 코드를 실행한 후 계산된 결과값을 return문으로 함수 호출문제에 반환하는 예제입니다.
<script>
function testAvg(arrData){
var sum = 0;
for(var i = 0; i<arrData.length; i++){
sum += Number(prompt(arrData[i] + "점수는?","0"));
}
var Avg = sum / arrData,length;
return avg;
}
var arrSubject = ["국어", "수학"];
var result = testAvg(arrSubject)
document.write("평균 점수는" + result + "점 입니다.");
</script>
함수를 호출하면 데이터가 매개변수에 전달되며 함수에 작성한 코드에 사용됩니다. 그리고 계산 결과를 return 문을 사용해 함수를 호출한 지점에 되돌려주면 result에 값이 저장됩니다.