디자이너 윈썸 2022. 6. 28. 13:02

▶ 선언적 함수

** 선언적 함수의 형식

function 함수( ) {

    실행문;

}

function compute( ) {

    console.log('선언적 함수');

}

 

**  선언적 함수의 호출

'선언적 함수'는 함수를 호출할 때 함수의 앞 또는 뒤에서 호출 가능

function compute( )  {

    console.log( '선언적 함수' );

}

compute( )
compute( )

function compute( ){

    console.log('선언적 함수');

}

 

변수나 함수를 선언하지 않고 호출하였을 때 는 에러가 발생해야 하는 것이 맞지만, let 또는 var 선언한 변수의 선언적 함수는 변수, 함수 선언 이전에 호출하여도 에러를 발생시키지 않습니다. 이러한 자바스크립트 성질을 '끌어 올리기' 호이스팅(Hoisting)이라고 합니다.

 

▶ 익명 함수

**  익명 함수의 형식

변수에 함수 데이터를 저장하여 변술를 마치 함수처럼 사용 할 수 있도록 만들어줌


let 변수 = function( ) {

   실행문;

};


let compute = function( ) {

    console.log( '익명 함수');

};

 

** 익명 함수의 호출

익명 함수는 변수 선언 이후에 호출해야 함

let compute = function( ) {

     console.log('선언적 함수');

};

compute( );
O
compute( );  // 익명함수는 변수 선언 이전에 함수를 호출 할 수 없음

let compute = function( ) {

    console.log('선언적 함수');

};
X

 

** 즉시 실행 함수

익명 함수 중에는 필요에 따라 일회성으로 사용되는 함수도 있음

'즉시 실행 함수'는 선언과 동시에 함수가 실행되며 함수명이 없기 때문에 재호출 할 수 없음

보통 처음 한번만 실행하는 초기화 코드에 사용됨

 

** 즉시 실행 함수의 형식


( function( ) {

    실행문;

})( );


( function( ) {

     let sum = 10;

     console.log(sum);

})( );

 

▶ 재귀 함수

함수 안에서 자신의 함수를 다시 호출하는 함수



function factorial( n ) {

     if( n === 0 ) {

             console.log( '호출 끝' );

      }else {

             console.log( '호출' + n );

             factoral( n-1 );
      }
}

factorial( 10 );