Javascript Function   자바스크립트 함수

(2021-09-24)

함수, Function

1. 함수 이란?

  ㅇ [프로그래밍 일반]   
     - 함수란 일단 정의되면 여러번 호출되며 실행될 수 있는 프로그램 블록

  ㅇ [자바스크립트 언어]  
     - 자바스크립트 함수는, 매우 다양한 기능, 독특한 특징들이 있음
     - `C 언어함수`,`자바 언어메서드` 등과는 달리, 
        . 그 자신이 객체이며,
        . 다른 객체를 생성할 수 도 있으며,
        . `실행 execute 가능(호출 invoke 가능)`,`참조 reference 가능` 특징 둘다 갖는 특별한 객체2. 자바스크립트 함수의 특징 (통상의 프로그래밍 언어와의 차별점)함수를 값 처럼 할당/대입할 수 있으며, 그 방법이 다양함
     - `변수`에 함수를 할당할 수 있음
        . 함수명과 변수명의 경계가 모호함 (명칭 만으로는 구분이 안됨)
     - `객체프로퍼티`에 함수를 할당할 수 있음
     - `배열 내 원소`에도 함수를 할당(정의,저장)할 수 있음

  ㅇ 함수매개변수로 전달할 수도 있으며, 함수 그 자체를 반환할 수도 있음
     - 즉, 함수를 다른 함수에 의해 인수로써 전달 또는 결과로써 반환할 수 있음
        . 함수 그 자체가 인수나 리턴 값으로 사용할 수 있음

     * 이를두고 1급 객체 (First Class Object) 또는 고차 함수(Higher-order Function) 라고도 함
        . 따라서, 함수형 언어 처럼 함수형 프로그래밍이 가능함

  ㅇ 함수 정의(생성) 방식이 다양함                ☞ 자바스크립트 함수 생성 방법 종류 참조
     - `명시적 함수(함수 선언문)` 형식에 의한 방법 이외에도,
     - `익명 함수` 형식
     - `함수 리터럴` 형식
     - `함수 객체 생성자` 형식 등
     * 즉, 정적 및 동적으로 모두 생성 가능

  ㅇ 자바스크립트 함수는 일종의 객체 임       ☞ Function 객체, 자바스크립트 객체 참조
     - 그 안에 그만의 독특한 프로퍼티,메소드가 있게 됨
        . 프로퍼티 : length (인수 갯수), name (함수 이름), arguments, caller, prototype
        . 메소드 : apply(), bind(), call(),                                  ☞ this 키워드 참조
                   constructor, toString() 등
     - 또한, 상위 프로토타입 객체(Function.prototype)를 상속 받아서 사용 가능
        . 例) `__proto__`라는 접근자 프로퍼티는, Object.prototype 객체프로퍼티상속 받음
     - 또한, 통상의 객체 처럼, 함수 내에 프로퍼티도 추가 가능
        . 즉, 함수 자체가 일반 객체 처럼 프로퍼티를 갖을 수 있음(추가할 수 있음)

  ㅇ 객체 형태이긴 하나, 하나의 독립된 데이터타입으로 취급됨   ☞ 자바스크립트 타입 구분 참조
     - String object,Number object,Date object 등의 다른 객체 타입과 유사하게 취급됨


3. 자바스크립트 함수의 생성 방법 및 함수 형태의 종류함수 생성 방법의 종류                        ☞ 자바스크립트 함수 생성 방법 종류 참조
     - 명시적 함수, 익명 함수, 함수 리터럴 등

  ㅇ 함수 형태의 종류
     - 즉시실행함수, 화살표함수, 익명함수, 콜백함수, 중첩함수4. 자바스크립트 함수에서의 인수(매개변수,파라미터)

  ※ ☞ 자바스크립트 함수 인수 참조


5. 자바스크립트 함수 호출 및 참조함수 호출(invoke)    : 함수명 뒤에 소괄호 ()를 쓰면 호출(실행)됨
     - [참고] ☞ 즉시실행함수 참조

  ㅇ 함수 참조(reference) : 함수명 뒤에 괄호()를 쓰지 않으면, 함수를 참조 만 함
     - 이때에는, 변수,객체 프로퍼티,배열 원소 등에 할당시켜, 단순히 참조 만 가능
     * 즉, 자바스크립트는, 함수를 값 처럼 할당,리턴이 가능하여, 프로그래밍에 유연성을 줌


6. 함수 메모이제이션 (Memoization)함수를 호출했을 때, 그 인수와 반환값을 한 쌍으로 만들어 저장해 두는 기법


[JS 함수] 1. JS 함수 2. JS 함수 종류 3. Function 객체 4. JS 함수 인수 5. this 키워드 6. 화살표 함수 (arrow) 7. 중첩 함수 (nested) 8. 즉시실행함수 (IIFE) 9. 콜백 함수 (CallBack) 10. 클로저 (Closure) 11. 고차 함수

 
        최근수정     요약목록     참고문헌