Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 시작일종료일
  • 파이썬온라인
  • googlecolaboratory
  • 서버등록
  • java
  • 이것이자바다
  • Eclipse
  • sql기간
  • 연습문제
  • 독학후기
  • 창초기화
  • 백준
  • spring
  • colaboratory
  • SQLD합격
  • 오류해결
  • 코딩앙마
  • HTML
  • oracle
  • 노마드코더
  • 기간설정
  • 비쥬얼스튜디오코드
  • AllArgsConstructor
  • 콜라보레이토리
  • 기간쿼리
  • SQL
  • Database
  • SQLD합격후기
  • Javascript
  • CSS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[13일차] JS 함수 호출방식 / 가변 파라미터 / 디폴트 파라미터 / 콜백
🏫 Open API_JAVA

[13일차] JS 함수 호출방식 / 가변 파라미터 / 디폴트 파라미터 / 콜백

2022. 8. 5. 22:45
728x90

20220805(금)

  • 목차
    - JS 함수 호출 방식
    - 가변 파라미터
    - 디폴트 파라미터
    - 콜백

< JS에서는 함수가 어떻게 호출되는가? >

+

Dorothy 작업


< 가변/나머지 파라미터 >

  • 의미
    가변적인 파라미터 개수를 처리하기 위한 기법
    *로직은 비슷한데 파라미터 개수가 계속 달라질 때
    = 1. 함수를 많이 만들어야 할 때, 2. 로직이 거기서 거기일 때


  • 형식 : function function_name(…rest_parameter) { }
// 최솟값 구하기
        const getMin = function(...ar) // 끝없는 배열ar을 받는다
        {
            // min : 최소값이라고 판단되는 값.
            let min = ar[0];

            for(let i = 1; i < ar.length; i++)
            {
                if(min > ar[i])
                {
                    min = ar[i];
                }
            }
            return min;
        }

        // 1. 동일한 로직으로 수행되는 함수.
        // 2. 파라미터가 여러개가 들어가는 경우.
        console.log(getMin(4, 6, 1, 2, 0));

 


< 디폴트 파라미터 >

  • 의미
    파라미터를 넣지 않은 경우, 미리 설정된 기본값 function(time = 8, wage = 10000) 을 사용하는 파라미터

  • 특징
    과도한 디폴트 파라미터 : 가독성(Readability) 저하
    왜?➡ 호출부 console.log(getPay()); 의 파라미터가 생략됨
    파라미터가 생략되면 당장 눈에 안 보인다. 어디 갔어???? ➡ 가독성(Readability)을 떨어뜨림
 // 일한시간, 시급을 입력하면 일당을 리턴하는 함수.

        const getPay = function(time = 8, wage = 10000) // 디폴트 파라미터
        {
            return time * wage;
        }

        console.log(getPay());

 


< 콜백 함수 >

Call Back : 호출하는 방식
일반적인 호출 : 호출 관계가 내 눈앞에 보인다.
콜백 : 실행되는데 내 눈앞에 안 보인다. ➡ 뒤에 숨은 것

호출하는 놈 / 호출되는 놈
f1() ----(call)---> f2()
call : 호출하는 놈(f1)이 호출되는 놈(f2)의 기능을 실행시키는 것

 

 

더보기

Call Back 재정리

ex) 버튼을 클릭하면 수행되는 함수
const btnClick = function()
     {
     서버에 data를 전송();
     }
그럼 클릭하는 btnClick(); 얜 어디에 넣어야 할까?
btnClick();을 실행했을 때 스크립트가 실행되어야 하는데
스크립트 내에 넣으면 스크립트 돌 때 도니까 안돼

<해결책>
➡ 웹브라우저 내부에서 표(a = btnClick)를 하나 만들어 놓고 btnClick을 호출(a 나와~)한다.

호출부가 별도로 "등록" 되어있다?
즉, caller가 뒤에 숨어있다가 필요할 때 호출이 된다. = callback

콜백은 기능의 호출이 명시적으로 눈앞에 없어. caller가 뒤에 숨어있는 것.
뒤에 숨어있기만 하면 calling이 되나요? 아니야~ registration, 미리 등록되어있어야 해!
등록에 대한 액션 없이 콜백은 이루어지지 않아.

728x90
저작자표시 (새창열림)

'🏫 Open API_JAVA' 카테고리의 다른 글

[15일차] 객체지향 이론 / 객체형 / Object literal / JS 데이터타입  (0) 2022.08.10
[14일차] 콜백함수 (forEach / map / filter) / arrow / time  (0) 2022.08.09
[12일차] for 응용 / function 응용 / Debugger  (0) 2022.08.05
[11일차] 함수 / 임시변수  (0) 2022.08.03
[10일차] 반복문 for / while / 제어 break 와 continue  (0) 2022.08.02
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [15일차] 객체지향 이론 / 객체형 / Object literal / JS 데이터타입
    • [14일차] 콜백함수 (forEach / map / filter) / arrow / time
    • [12일차] for 응용 / function 응용 / Debugger
    • [11일차] 함수 / 임시변수
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바