Javascript 의 함수

자바스크립트의 함수는 리턴 타입을 명시하지 않는다. function 키워드로 함수를 선언하며, 괄호() 안에서 매개변수를 받으며 (변수 타입은 명시하지 않음) , return 을 통해 값을 반환한다.

  • ex )
    var a = 1;
    var b = 5;
    function plus (a,b){
    var sum = a + b;
    return sum;
    }
    var sum_num = sum(a,b);

함수의 범위

자바스크립트 함수 내부에서 선언한 변수는 외부에서 참조할 수 없다.
함수 안에 함수 선언 또한 가능한데, 이경우에도 외부의 함수에서 내부의 변수를 참조할 수 없다.

first-class object

자바스크립트 함수는 일반적인 언어와 달리 독특한 점이 있다.
Javascript 에서 함수는 first-class object(citizen) 으로 취급된다.

first-class object란 다음과 같은 조건을 만족하는 객체를 말한다.

  • first-class object의 조건
    변수나 데이터 구조안에 담을 수 있다.
    파라미터로 전달 할 수 있다.
    반환값(return value)로 사용 할 수 있다.
    할당에 사용된 이름과 관계없이 고유한 구별이 가능하다.
    동적으로 프로퍼티 할당이 가능하다.

자바스크립트에서 일반적으로 사용되는 객체변수는 모두 first-class object라고 볼 수 있다. 함수 조차 이와 같은 객체로 취급된다.

  • 예제
    var plusFunc = function (a, b) {
    return a + b;
    };
    // 익명의 함수를 만들고 plusFunc 변수에 대입
    plusFunc(3, 5);
  • 함수 자체를 반환
    function a(x) {
    var b = function(y) {
    return x + y;
    };
    return b;
    }
    a(3)(4); // 7 반환
  • 함수를 객체의 프로퍼티로도 사용할 수 있다
    var jacob = {
    'age': 18,
    'run': function() {
    alert('Jacob is running');
    },
    'sleep': function() {
    alert('Jacob sleeps');
    },
    };
  • 즉시 실행 함수는 아래 링크를 참고한다.

ofcourse 즉시 실행 함수

profile
개발스터디

0개의 댓글