Javascript/JS Flow

2-2. 함수 선언문과 함수 표현식

헬크로스 2020. 1. 26. 02:35

함수선언문과 함수표현식

  • 함수선언문
    function a(){
      return 'a';
    }
  • 기명 함수표현식
    var b = function bb(){
      return 'bb';
    }
  • (익명) 함수표현식
    var c = function(){
      return 'c';
    }
  • 브라우저들이 업데이트되면서 기명 함수표현식을 사용하는 이점이 사라져서 거의 사용하지 않는다.
  • 익명 함수표현식의 선언되고 정의되는 과정
    • 변수 c 선언
    • 익명함수 선언
    • 변수 c에 익명함수를 할당
  • 선언한 함수를 변수에 할당한다 => 함수표현식
  • 함수선언문과 함수표현식의 차이는 '할당' 여부
  • 할당을 하지 않으면 전체가 호이스팅의 대상이되고 할당을 하는 경우 함수를 그 자리에 남아있고 변수만 호이스팅된다.
  • 함수선언문보다 함수표현식 사용을 권장한다. 안전하고 예측 가능한 코드가 되기 때문.