싸펑피펑
380
2022-05-14 16:09:11
4
156

API 문서, 개발 문서를 만들때 어떤 규약이 정해져있는건가요?


회사 일로 자바스크립트로 개발해야할 일이 있어, 책도 사고 구글링을 하다보니 array.filter 라는 함수의 원형이 좀 특이하게 생겼더라구요. 

ex ) arr.filter (callback(element[, index[, array]])[, thisArg])

매개변수넣는 자리에 대괄호가 절반만(?) 들어가는게 사실 잘 이해가 안되네요 ㅠㅠ, 이런건 프로그래밍 업계에 정해져 잇는 규약같은건가요?

이런 문서를 이해하려면 필요한 지식이 어떤게 있을까요?

0
  • 답변 4

  • fastbook
    32
    2022-05-14 16:31:14

    1. 다른 사람들과 같이 쓰려면 규칙이 있어야죠

    2. 보통 구글링 해서 지식을 알아 가죠

    3. 영어

    4. 자바스크립트에서는 [,]이건 옵션으로 매개변수가 필수 값이 아니라는 뜻 입니다.


  • 싸펑피펑
    380
    2022-05-14 16:48:34

    arr.filter (callback(element[, index[, array]])[, thisArg]) 를 풀어서 읽어보려고 해도 어떻게 읽어야 하는지 감이 잘 안오네요 ㅠㅠ

  • fastbook
    32
    2022-05-14 17:55:42
    var fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];

    /**
    * 검색 조건에 따른 배열 필터링(쿼리)
    */
    function filterItems(query) {
    return fruits.filter(function(el) {
    return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
    })
    }

    console.log(filterItems('ap')); // ['apple', 'grapes']
    console.log(filterItems('an')); // ['banana', 'mango', 'orange']

    위에 소스가 mdn문서 Array.prototype.filter 예제 입니다

    arr.filter (callback(element[, index[, array]])[, thisArg])

    callback : function(el) {
    return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
    }

    element : el (filter 함수의 필수 매개변수)
    index, array (filter 함수의 있어도 되고 없어도 되는 매개변수)

    thisArg는 , filter가 작동할때 context가 node면 global, 브라우저먼 window가 될텐데 대상을 변경할 것을 가르킵니다

    function filterItems(query) {
    return fruits.filter(function(el) {
    return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
    }, fruits);
    }
    console.log(filterItems('ap'));

    이떄에 filter 함수 실행시 this는 fruits가 됩니다
  • 싸펑피펑
    380
    2022-05-15 10:46:54

    답변감사합니다.

    하... 제가 아직 자바스크립트를 잘 몰라서 그러는건지 아님 다른 무언가 선행지식을 필요로 하는데 그 선행지식이 뭔지 모르니까 질문도 모호하게 했나보네요. 

    저는 단순히 메소드(함수) 선언문만 봐도 어떻게 호출해야 겠다라는게 잘 떠오르지 않아서 질문을 드렸던건데.. 

    저는 지금까지본 API 문서들은 

    반환형 메소드 명(매개변수1, 매개변수2...) 항상이런구조의 문서들만 보다가 저렇게 대괄호가 같이 들어가 있는 희한하게 생긴 선언문을 보게 되니 답답하네요. 

  • 로그인을 하시면 답변을 등록할 수 있습니다.