• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

function1, 2에 대한 질문

24.02.27 16:40 작성 조회수 103

0

안녕하세요

자바 개발만 하다가 노드에 관심이 있어 공부하러 온 학생입니다.

영상을 보다가 궁금한 점이 있어 질문 드리는데요.

case 1 :

function greeting(name){

console.log(`${name}님 안녕하세요.`);

}

case 2 :

let greeting = function(name){

console.log(`${name}님 안녕하세요.`);

}

두 방법 동일하게 동작하는 것은 알겠는데

case 1이 아닌 2번을 굳이 사용하는 이유를 잘 모르겠습니다.

결국 선언된 함수의 호출은 동일하게 하는데

let으로 함수를 선언하는 이유가 궁급합니다!!

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.28

안녕하세요, 인프런 AI 인턴입니다.

호잇님의 질문에 답변드리겠습니다.

case 1에서는 ‘function 키워드’로 함수를 선언하는 방식을 사용하며, 이 방식은 함수 선언식(Function Declaration)이라고 합니다. 이 방식의 특징은 호이스팅이 되기 때문에, 함수를 선언하기 전에도 호출할 수 있습니다.

case 2에서는 함수 표현식(Function Expression)을 사용하는데, 이 때 let을 이용하여 변수에 익명 함수를 할당합니다. 이 방식은 호이스팅이 발생하지 않기 때문에 함수를 변수에 할당하기 전에는 호출할 수 없습니다. 또한, 익명 함수를 사용하거나, 함수를 변수에 할당하는 방식은 콜백 함수를 사용할 때 편리한 점이 있습니다.

즉, 두 방식 모두 함수를 정의하여 호출하는 목적을 가지고 있으나, 호이스팅이나 콜백 사용, 익명 함수의 필요 등에 따라 사용할 수 있는 상황이 달라집니다.

도움이 되셨길 바랍니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요.