JavaScript JS 기초 함수

    2018-04-11 12:26:00 작성

    자바스크립트 함수

    함수는 문장을 캡슐화 하여 어디서든 실행할 수 있게 하므로 모든 언어의 핵심입니다.

    함수 선언식

    function 함수명 (매개변수) {
        실행할 코드
    }
    
    • 함수는 function 키워드를 사용해서 선언하여 정의 합니다.
    • 함수의 반환값이 필요한 경우 함수내부에서 return 키워드를 사용하여 반환할 수 있습니다.
    • 함수 선언식으로 선언된 함수는 끌어 올림(hoisting)되어 다른 코드들 보다 먼저 읽고 실행 됩니다.
    • () 연산자는 함수를 호출 합니다. 함수명()


    매개변수의 이해

    Javascript의 매개변수는 다른 언어의 매개변수와 다르게 동작합니다.
    데이터 타입을 검사하지도 않고, 매개변수의 숫자를 따지지도 않습니다.
    매개변수를 2개 받도록 했다고 해도 매개변수를 1개 3개 또는 아에 넘기지 않아더라도 이를 에러로 간주하지 않습니다.
    함수는 arguments 라는 객체를 하나 갖는데 이 객체를 통해 매개변수의 값에 접근 할 수 있습니다.
    첫번째 매개변수는 arguments[0], 두번째 매개변수는 arguments[1]의 형태로 접근합니다.
    전달받은 매개변수의 개수는 length 속성을 통해 알 수 있습니다.
    arguments 객체는 내부적으로 배열처럼 동작하지만 Array 객체의 인스턴스는 아닙니다.

    매개변수의 개수 및 타입이 없어 함수 오버로딩이 없습니다.



    함수 표현식

    var 변수명 = function (매개변수) {
        실행할 코드
    }
    
    • Javascript에서 변수는 느슨한 타입이기 때문에 변수에 함수를 대입할 수 있습니다.
    • 이때 우항에 있는 function () 의 경우 이름이 없기 때문에 익명함수라고 합니다.
    • 함수의 이름은 단순히 그를 가리키는 단순한 포인터 이기 때문에 함수이름은 여러개 붙일 수 있습니다.
    • 함수 표현식으로 선언된 함수는 끌어 올림(hoisting)이 되지 않기 때문에 함수 호출 이전에 선언되어야 합니다.

    위의 예제와 동일한 결과입니다.

    함수 표현식은 함수 호출 이전에 선언 되어야 합니다.
    이것은 에러 입니다.