728x90

01 함수의 기초

  • 함수(function)란 하나의 특별한 목적의 작업을 수행하기 위한 필요한 문(statement)들의 집합을 정의 한 코드 블록.
  • 함수는 이름과 매개변수를 갖으며 필요한 때에 호출하여 코드블록에 담긴문들을 실행할 수 있음.

 

 

 

 

 

02 함수 선언문 (function declaration)

  • 함수 선언문의 구성 요소들
    • 함수 이름
    • 괄호 안에 쉼표로 구분되는 함수의 매개변수 (매개변수1, 매개변수2)
    • 중괄호로 둘러싸인 자바스크립트 실행문 {  }

 

    <script>
        function 함수이름(매개변수1, 매개변수2,...) {
        함수가 호출되었을 때 실행하고자 하는 실행문;
        }
    </script>

 

 

sum(3,4)

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>function</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <script>
        function sum(a,b){
            document.write(a+b);
        }
        sum(3,4)
    </script>
</head>
<body> 
</body>
</html>

 

 

 

 

 

03 함수 표현식 (function expression)

  • 기명 함수 표현식
  • 익명 함수 표현식
    • 함수 표현식 방식으로 정의한 함수는 함수명을 생략.
    • 이름이 없는 함수.
    • 반드시 변수에 저장.
    • 변수명 실행.
    • 이벤트 처리.
    • 객체에 함수 등록 할때.
  • 괄호 함수 표현식
    • 함수 키워드와 함수 이름이 없이 선언하는 함수.

 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>function</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <script>
        // 기명 함수 표현식 (named function expression)
        var result = function sum(number){
            return number + number;
        }

        // 익명 함수 표현식 (annonymous function expression)
        var result = function (number){
            return number + number;
        }

        // 괄호 함수 표현식
        var result = (number) => {
        return number + number;
        }
    </script>
</head>
<body> 
</body>
</html>

 

 

 

04 반환문 (return)

  • 함수는 반환(return)할 수 있음
  • 이러한 반환문을 통해 호출자는 함수에서 실행되어 반횐된 값인 반환 값(return value) 을 전달받을 수 있음.
  • 반환문은 함수의 실행을 중단하고 return 키워드 다음에 명시된 표현식의 값을 호출자에게 반환.
  • 배열 등을 이용하여 한 번에 여러 개의 값을 리턴 할 수 있음.
  • 결과 값을 되돌려 주는 키워드.

 

 

sub (7,3)

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>function</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <script>
        function sub(a,b){
            // a - b 의 결과를 반환
            return a-b;
        }

        //sub() 함수가 호출 그 반환값이 변수 result 에 저장
        var result = sub(7,3)
        document.write(result)
    </script>
</head>
<body> 
</body>
</html>

 

 

 

 

 

05 재귀 함수 (recusive function)

  • 자기 자신을 호출하는 함수.
  • 재귀 함수는 자신을 무한히 연쇄 호출하므로 호출을 멈출 수 있는 탈출 조건을 반드시 만들어야 함.
  • 탈출 조건이 없는 경우, 함수가 무한 호출되어 stackoverflow 에러가 발생. 
  • 반복문보다 재귀 함수를 통해 보다 직관적으로 이해하기 쉬운 구현이 가능한 경우에만 한정적으로 적용하는 것이 좋음.

 

 

예제) 팩토리얼: 1부터 자신까지의 모든 양의 정수의 곱 ( 5! = 1 * 2 * 3 * 4 * 5 )

factorial example

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>function</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <script>
        function factorial(n){
            if (n < 2) return 1;
            return factorial(n - 1) * n
        }
        document.write(`방법 1 : ${factorial(4)}<br>`)

        function fac(n){
            var result = 1;
            for (i=2; i<=n; i++)
            result *= i;
            return result;
        }
        document.write(`방법 2 (for문) : ${fac(4)}`)
    </script>
</head>
<body> 
</body>
</html>
728x90

BELATED ARTICLES

more