Javascript Function   자바스크립트 함수

(2022-05-26)

함수 , 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)함수를 호출했을 때, 그 인수와 반환값을 한 쌍으로 만들어 저장해 두는 기법



Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"