Published 2022. 12. 19. 16:49

함수(function)

함수의 종류 :  선언적 함수 / 익명함수 

* 선언적 함수 

  function 함수명(매개변수,매개변수,..){
        해당 함수 호출시 실행할 소스코드;}
            
        [return 결과값;]
    };

* 익명함수 

 변수|속성 = function([매개변수,...]){
        해당 함수 호출시 실행할 소스코드;

        [return 결과값;]
    };
    -> 특정 변수나 속성에 대입되는 함수 제시시 주로 사용됨 
        (주로 이벤트 핸들러 작성시 사용)
 <button id="btn">실행확인</button>
    <div id="area2" class="area"></div>
    
    <script>
        const btn = document.getElementById("btn");
        btn.onclick = function(){// 이벤트 속성에 대입되는 function == 이벤트핸들러 
            document.getElementById("area2").innerHTML += "이벤트 핸들러를 통해서 실행됨<br>";
        } 

        window.onload = function(){
            document.getElementById("area2").innerHTML += "페이지 로딩 직후에 실행됨<br>";
        }
    </script>

함수의 매개변수  : 매개변수 제시시 자료형 지정하지않음, 선언구문X => 변수명만 지정 

- 정의 해둔 매개변수 갯수보다 더 많이 전달하는 것 가능하지만 초과된 전달값은 무시됨
- 정의해둔 매개변수 갯수보다 더 적게 전달하는 것 가능 ( 오류 안남) 

 <button onclick="test2('안녕하세요');">실행확인</button>
    <button onclick="test2(10);">실행확인</button>
    <button onclick="test2([1,2,3]);">실행확인</button>
    <button onclick="test2(true);">실행확인</button>

    <br>
    <button onclick="test2(prompt('이름을 입력해주세요'));">실행확인</button>
    <button onclick="test2('안녕하세요','반갑습니다');">실행확인</button>
    <button onclick="test2(10,true,'안녕');">실행확인</button>
    <button onclick="test2();">실행확인</button>


    <div id="area3" class="area"></div>
    <script>
        function test2(value){
            document.getElementById("area3").innerHTML = value;
        }
    </script>

 


 

매개변수 관련 arguments배열 

- 함수 호출시 전달되는 값들은 내부적으로 arguments배열에 담김

arguments : 모든 함수마다 내부적으로 하나씩 존재하는 배열 객체 

 <button onclick="test3(11,12,1,5,7);">실행확인</button>
    <div id="area4" class="area"></div>

    <script>
        function test3(){   
            const divEl = document.getElementById("area4");

            let sum = 0;
            for(let i=0;i<arguments.length;i++){
                sum += arguments[i];
            }
            divEl.innerHTML += "총합 : " + sum + "<br>";
            divEl.innerHTML += "평균 : " + sum/arguments.length + "<br>"
        }
    </script>

매개변수에 this관련 전달하기 
- this :  현재(이벤트가 발생한) 요소객체

<button onclick="test5(this)">클릭</button>
    <button onclick="test5(this)">클릭</button>

    <script>
        function test5(el){
            el.innerHTML = "클릭됨";
            el.style.backgroundColor ="red";
        
        }
    </script>

함수의 return

* 일반적인 값 리턴

 <script>
        //1~100사이의 랜덤값 구해서 반환시켜주는 함수 만들기 
        function ran(){
            return parseInt(Math.random()*100 +1)

        }    
    </script>
    <button onclick="test6();">실행확인</button>
    <div id="area5" class="area"></div>

    <script>
        function test6(){
            document.getElementById("area5").innerHTML += "랜덤값 : "+ ran() + "<br>"
        }
    </script>

 

* 익명함수를 리턴


    이름 : <input type="text" id="userName">
    <button onclick="test7()();">실행확인</button>

    <script>
        function test7(){
            const inputEl = document.getElementById("userName");
            return function(){
                alert(inputEl.value);
            };
        }
        (function(){//익명함수 강제 호출 
            document.getElementById("userName").value = "ㅋㅋㅋ";

        })();
    </script>
이름 :

'Front > JavaScript' 카테고리의 다른 글

JavaScript 08. 객체_ 2  (0) 2022.12.20
JavaScript 08. 객체_ 1  (0) 2022.12.20
JavaScript 06. 배열  (0) 2022.12.19
JavaScript 05. 문자열과 숫자  (0) 2022.12.16
JavaScript 04. 요소 가져오기 (접근하기)  (0) 2022.12.16
복사했습니다!