JavaScript/3주차

8. record와 호이스팅 2 (함수의 호이스팅)

tnals634 2023. 5. 24. 16:31

함수 정의 방식 ( 3)

 - 함수 선언문

//함수 선언문, 함수명 a가 곧 변수명
//function 정의부만 존재, 할당하는 명령이 없는 경우
function a() { /*....*/}
a(); //실행 ok

 

- 함수 표현

     - 익명 함수 표현식

//함수 표현식, 정의한 function을 별도 변수에 할당하는 경우
// 1. 익명함수표현식 : 변수명 b가 곧 변수명 (일반적 case이다)
var b = function () {/*...*/}
b(); //실행 ok

 

     - 기명 함수 표현식(쓸일이 별로 없다)

// 2. 기명 함수 표현식 : 변수명은 c, 함수명은 d
// d()는 c() 안에서 재귀적으로 호출될 때만 사용 가능하므로 사용성에 대한 의문
var c = function d () {/*...*/};
c(); // 실행 ok
d(); // 실행 error

 

record의 수집 과정이 호이스팅

 

함수 선언문은 위험성을 가진다.

함수 표현식을 활용하는 습관을 가지도록 하자.