본문 바로가기

JavaScript/DAY 34 _ 23.10.11

함수 Basic

            // ★★★함수★★★

            // 함수의 선언

            // 1. 기본

            function test1(){
                console.log("test1의 함수");
                // return 22;
            }

            test1();    // --> java의 매서드처럼 호출을해야 출력이되겠지?

 

            // 2. return문

            function test2(){
                return 10;
            }

            const v1 = test2();    // 변수를 선언해야 그 변수에 저장됐던 return값이 들어가고
            console.log(v1);       // 출력을해야 console에 뜨겠지

            const v2 = test1();    // 출력 : test1의 함수
            console.log(v2);       // 출력 : undefined --> null이랑 다르다. (return할 값이 없다는....)
            // --> Q. 만약 test1 함수에 return 22를 넣으면?
            // --> 출력 : 22 / const v2 = test1()이거는 test1의 함수만 출력됨. 22는 v2에 저장됐나봐

            

             // 3. 매개변수

          function test3(a, b, c){
                console.log("a : " + a);
                console.log("b : " + b);
                console.log("c : " + c);
            }

            test3("매개변수", 1, true); 
            test3("이게되니?");     // a : 이게되니? , b : undefined, c : undefined.... 사용XXX

 

            // 4. like 매서드 오버로딩

            function test4(a=1, b=2, c=3){
                console.log("a : " + a);
                console.log("b : " + b);
                console.log("c : " + c);
            }

            test4();    // --> 매개변수를 적용하지 않았을 때, 초기값을 설정할 수 있따.
            test4("이것도", "된다구");    // 이것도 된다구 3
            test4(c=777, b=2323, a="우하하"); // --> 이거는 안되지요...ㅎ 무시해 (그저 순서대로 들어갈뿐.)

 

            // 5. 이런식으로도 사용가능... : ★★★ 변수에 함수를 넣을 수 있다

	 function test5(x, y){
                console.log("변수에함수넣기");
                return x + y;
            }

            const result1 = test5(10, 44);
            console.log(result1);

            
            const qqqq = test5;             
            // test5()이게 호출이고, 괄호가 없지?
            // --> qqqq에 test5함수를 넣겠다는거지
            // ★★★ 변수에 함수를 넣을 수 있다
            console.log(qqqq("이런식으로도", "사용가능"));
            
            const resultqqqq = qqqq(100, 777);
            console.log(resultqqqq);

            console.log(test5());

            // 5-1. 활용1 (call back함수)
            // 정의 : 내가 정의하지만, 내가 호출하지 않아 (= 자바의 인터페이스같지?)
            // --> 다른 함수에 인수로 전달되어 나중에 호출되는 함수
            // --> 주로 비동기 작업을 다룰 때, 이벤트 처리 및 다른 비동기 작업과 함께 사용됩니다.

 	function test6(){
                console.log("call back함수 : 내가 정의하지만, 내가 호출하지 않아");
            }
            // setInterval(test6, 3000);
            // --> 1초(1000 밀리초) 간격으로 test6의 내용을 콘솔에 출력하는 예제



            // 5-2. 활용2
            function sqr(x) {                // 제곱의 값을 구하는 함수 sqr를 정의함.
                return x * x;
            }

            var sqrNum = sqr;               // 변수 sqrNum에 함수 sqr을 대입함.
            console.log(sqr(4));            // 기본방법 : 함수 sqr을 호출함.  -- 출력: 16
            console.log(sqrNum(4));         // 변수에 함수를 넣은 방법 : 변수 sqrNum를 함수처럼 호출함.  -- 출력: 16

            console.log(sqrNum);            
            // 출력 :
            /* sqr(x) {                // 제곱의 값을 구하는 함수 sqr를 정의함.
                return x * x;
            }*/
            // ---> 값으로서의 함수로, sqrNum에 sqr함수를 넣은거니까는....

 

'JavaScript > DAY 34 _ 23.10.11' 카테고리의 다른 글

함수2  (0) 2023.10.11
배열  (0) 2023.10.11
조건/반복문  (1) 2023.10.11
연산자  (0) 2023.10.11
변수  (0) 2023.10.11