본문 바로가기

Programming/JavaScript

[JavaScript] 함수

선언적 함수

가장 널리 사용하는 함수의 종류는 선언적/정적인 형태로 function 키워드, 함수명, 인자 리스트, 함수 몸체로 구성된다. 선언적/정적 함수는 페이지를 로드할 때 단 한 번만 파싱된다. 이 때 파싱된 결과는 함수가 호출될 때마다 사용된다.

function 함수명 (인자1, 인자2, ..., 인자n) {
    // 실행 코드
}


익명 함수

함수도 객체다. 그렇기 때문에 함수도 생성자를 사용해서 생성할 수 있고, 함수를 변수에 배정하는 것도 가능하다.
선언적 함수와는 달리, 자바스크립트 엔진은 익명 함수를 동적으로 생성한다. 따라서 매번 함수가 호출될 때마다 동적으로 생성된다. 반복문에서 사용하면 매번 반복시마다 생성된다.

var variable = new Funtion ("인자1", "인자2", ..., "인자n", "함수 몸체");

함수 리터럴

자바스크립트 객체는 리터럴 형태를 가질 수 있다. 즉 생성자와 객체를 사용하지 않고, 리터럴로 접근할 수 있다. 문자열은 String 생성자를 사용해서 생성할 수 있고, String 메소드로 접근할 수 있다. 문자열의 이런 특성은 함수에서도 가능하다. 즉 함수를 생성해 변수에 할당하기 위해 생성자를 사용할 필요가 없다는 뜻이다. 말 그대로 함수 리터럴(Function Literal)인 것이다.
함수 리터럴은 한 번만 파싱되며 정적이다. 함수명은 지정할 수도 있고, 지정하지 않을 수도 있다. 함수명을 지정한 경우엔 그 함수 내에서만 접근이 가능하다.

var func = function (인자들) {
   // 실행 코드
}