상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 함수 표현식과 함수 선언의 차이는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/함수 표현식/ko'>함수 표현식</a>과 <a href='https://sangseek.com/sangseeks/함수 선언/ko'>함수 선언</a>은 <a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트에서 함수를 정의하는 두 가지 방법입니다. 이 두 가지 방법은 비슷한 목적을 가지고 있지만, 몇 가지 중요한 차이점이 있습니다. 아래에서 이 두 가지 방법의 차이를 자세히 설명하겠습니다. 1. 정의 방법 - 함수 선언 (Function Declaration) : 함수 선언은 `function` 키워드를 사용하여 함수를 정의하는 전통적인 방법입니다. 함수 선언은 다음과 같은 형식으로 작성됩니다. ```javascript function myFunction() { // 함수 내용 } ``` - 함수 표현식 (Function Expression) : 함수 표현식은 함수를 변수에 할당하는 방식으로 정의됩니다. 함수 표현식은 다음과 같은 형식으로 작성됩니다. ```javascript const myFunction = function() { // 함수 내용 }; ``` 또는 화살표 함수를 사용할 수도 있습니다: ```javascript const myFunction = () => { // 함수 내용 }; ``` 2. 호이스팅 (Hoisting) 호이스팅은 자바스크립트에서 변수와 함수 선언이 코드의 최상단으로 끌어올려지는 현상을 의미합니다. 함수 선언과 함수 표현식은 호이스팅에서 다르게 동작합니다. - 함수 선언 : 함수 선언은 호이스팅이 적용되어, 함수가 정의되기 전에 호출할 수 있습니다. 예를 들어: ```javascript console.log(myFunction()); // "Hello, World!" function myFunction() { return "Hello, World!"; } ``` - 함수 표현식 : 함수 표현식은 변수에 할당되기 전에는 호출할 수 없습니다. 따라서 아래와 같은 코드는 오류를 발생시킵니다. ```javascript console.log(myFunction()); // <a href='https://sangseek.com/sangseeks/TypeError/ko'>TypeError</a>: myFunction is not a function const myFunction = function() { return "Hello, World!"; }; ``` 3. 스코프 (Scope) 함수 선언과 함수 표현식은 스코프에 대한 접근 방식에서 차이가 없습니다. 두 방법 모두 자신만의 스코프를 가지며, 이 스코프 내에서 정의된 변수에 접근할 수 있습니다. 4. 이름 (Name) - 함수 선언 : 함수 선언은 항상 이름을 가집니다. 이 이름은 함수 내부에서 재귀적으로 호출할 때 사용될 수 있습니다. - 함수 표현식 : 함수 표현식은 이름이 선택적입니다. 이름이 없는 경우 "<a href='https://sangseek.com/sangseeks/익명 함수/ko'>익명 함수</a>"라고 하며, 이 경우 함수 내부에서 자신을 호출할 수 없습니다. 그러나 이름이 있는 경우에는 재귀 호출이 가능합니다. ```javascript const myFunction = function namedFunction() { return namedFunction(); // 재귀 호출 가능 }; ``` 5. 사용 용도 - 함수 선언 : 주로 전역 범위에서 사용할 함수나, 코드의 가독성을 높이기 위해 사용됩니다. 선언된 함수는 코드의 어느 곳에서든 호출할 수 있습니다. - 함수 표현식 : 주로 콜백 함수나 일회성 함수, 클로저를 만들 때 사용됩니다. 또한, 변수에 할당하여 동적으로 함수를 생성할 수 있는 유연성을 제공합니다. 결론 함수 선언과 함수 표현식은 자바스크립트에서 함수를 정의하는 두 가지 방법으로, 각각의 장단점이 있습니다. 함수 선언은 호이스팅 덕분에 코드의 어느 위치에서든 호출할 수 있는 반면, 함수 표현식은 더 유연하고 동적인 함수 정의를 가능하게 합니다. 개발자는 상황에 따라 적절한 방법을 선택하여 사용할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기