본문 바로가기
Java Script 자바스크립트

[함수] 기본 매개변수

by chloeize 2021. 5. 10.
728x90

 

 <script>

      

        function test(abc) {

            alert(a + b + c);

        }

        

        test(102030); // 매개변수를 입력해야 -> 실행됨

        

        // 

        

        test(); // 이렇게 사용하더라도,

        // a = 10

        // b = 20

        // c = 30

        // 이렇게 기본값을 가진 매개변수를 만들고 싶다면,

        

        

        function test(abc) {

            // a가 undefined일 때, -> a = 10

            // b가 undefined일 때, -> b = 20

            // c가 undefined일 때, -> c = 30

            // 가 될 수 있도록 

 

            // 방법 1 :  a의 typeof가 undefined일 때, a = 10으로 초기화

            // 이 방법이 가장 안전.

            if (typeof (a) == "undefined") { a = 10; }

 

            // 방법 2 :  !를 써주면 undefined라는 뜻 (undefined = false이므로)

            // 즉, ! = undefined일 때 라는 뜻이 된다. :  !b = b가 undefined일 때

            if (!b) { b = 20; }

 

            // 방법 3 :  짧은 조건문 사용

            c = c || 30// 논리합(||)연산자 = <불표현식>이 거짓일 때 실행됨.    

            // 다만, 이 방법은 사용자가 0, "" 등을 입력했을 때 

            // false로 취급되어 의도하지 않은 결과가 나올 수 있으므로 주의!

            

            // * 참고 :  논리곱(&&)연산자 = <불표현식>이 참일 때 실행됨.



            alert(a + b + c);

        }

        // 이 방법들은 ECMAScrpipt5까지 사용되던 방법이며,

        // 기본 매개변수를 너무 많이 사용하다보니,

        // ECMAScrpipt6에서는 쉽게 할 수 있는 방법을 제공하게 되었다.

 

        // 매개변수에 곧바로 적용하는 방식(ECMAScrpipt6)

 

        function test(a=10b=20c=30) {

            alert(a + b + c);

        }

        test();

 

        // 만약 기본 매개변수가 있는 것도 있고, 없는 것도 있어야 한다면,

        function test(ab=20c=30) {

            alert(a + b + c);

        }

        test(10);

        // 이와 같이 앞의 매개변수를 비워두어야

        // 값을 입력하여 사용할 수 있다.

        

    </script>

728x90