[JS] 선언적함수와 익명함수

jiyoung·2022년 12월 13일
0

선언적함수

function <function name>(<매개변수1>, <매개변수2>, ...) {}
  • 선언적 함수는 함수를 선언할 때 이름을 붙여주는 함수입니다. 즉, 따로 변수에 넣어주지 않고 선언할 대 붙여준 이름으로 호출하면 됩니다.

익명함수

  function(<매개변수1>, <매개변수2>, ...) {}
  • 익명함수는 말그대로 이름이 없는 함수입니다. 대신 변수명을 마치 함수명처럼 사용해서 함수를 호출하거나 변수값을 이동시키는데 사용할 수 있습니다. 따라서 익명함수를 선언하고 사용하기 위해서는 변수에 넣어서 사용하여야 합니다.


오류발생


정상적으로 hello가 출력됨

익명함수는 그럼 왜 사용하나요?🤔

단 한번만 사용하는 함수는 일반 함수가 아닌 익명 함수로 사용하는 것이 좋습니다.

일반 함수는 호이스팅이 발생하기 때문에 항상 메모리를 차지합니다.

  • 호이스팅:함수의 선언과 초기화를 분리한 후 선언한 코드의 최상단으로 옮기는 것 처럼 해석하는 것

하지만 한 번의 사용을 위해서 메모리를 계속해서 차지하고 있는 것은 매우 비효율적이므로 재사용이 필요 없는 함수의 경우에는 불필요한 메모리 낭비를 최소화하기 위하여 익명함수를 사용합니다.

결론

  • 일반 함수는 전역적이며, 전체가 다 호이스팅 되므로 호출의 위치와 구현의 위치간에 연관관계가 없습니다. 또한, 재사용될 기능에 주로 사용됩니다.

  • 익명 함수는 선언부만 호이스팅되며 호출의 위치와 구현의 위치간에 순서가 알맞아야 하고, 한번만 사용하는 기능에 사용됩니다.


참고자료

0개의 댓글