> 웹 프론트엔드 > JS 튜토리얼 > 함수 표현식 대 함수 선언을 사용하는 시점

함수 표현식 대 함수 선언을 사용하는 시점

Jennifer Aniston
풀어 주다: 2025-02-09 08:51:11
원래의
695명이 탐색했습니다.

When to Use a Function Expression vs. Function Declaration JavaScript 함수 정의 방법 : 함수 표현 및 함수 선언. 이 기사는 기능 표현을 사용하는시기, 기능 선언을 사용하는시기를 탐구하고 두 가지의 차이점을 설명합니다.

주파수 선언은 오랫동안 널리 사용되어 왔지만 기능 표현이 점차 지배적입니다. 많은 개발자들은 언제 어느 것을 사용 해야하는지 확실하지 않으며, 결국 잘못된 선택으로 이어집니다.

함수 표현식과 함수 선언에는 몇 가지 주요 차이점이 있습니다. 이러한 차이점과 코드에서 기능 표현 및 기능 선언을 사용하는시기를 자세히 살펴 보겠습니다.

키 포인트

기능 표현 및 기능 선언은 JavaScript에서 함수를 만드는 두 가지 방법입니다. 함수 선언이 명명되었으며 변수 프로모션으로 인해 함수 표현식이 익명이며 변수에 할당되지만 호출하기 전에 정의해야합니다.
function funcDeclaration() {
    return '函数声明';
}

let funcExpression = function () {
    return '函数表达式';
}
로그인 후 복사
함수 표현식은 함수 선언보다 유연합니다. 정의 후 즉시 사용할 수 있으며 다른 함수의 매개 변수로 사용되며 익명이 될 수 있습니다. 반면에 기능 선언은 특히 긴 기능에 대해 더 읽기 쉬우 며 가변 프로모션으로 인해 정의 전에 호출 할 수 있습니다.

함수 표현식 또는 함수 선언 선택은 코드의 특정 요구 사항에 따라 다릅니다. 함수 선언은 일반적으로 재귀 함수가 필요할 때 또는 함수를 정의하기 전에 함수를 호출해야 할 때 사용됩니다. 기능 표현은 두 작업이 필요하지 않은 경우 클리너 코드를 작성하는 데 적합합니다.

기능 표현식은 클로저를 생성하고 다른 기능에 인수로 전달하고 즉시 함수 표현식 (IIFE)을 호출하는 데 사용될 수 있습니다. 따라서 개발자 도구 상자에서 다재다능하고 강력한 도구가됩니다.
  • 함수 선언이란 무엇입니까?
  • 함수 선언은 함수가 생성되고 명명 될 때 수행됩니다.
  • 키워드를 작성한 후 함수 이름을 따르고 함수 이름을 선언하십시오. 예를 들면 :
  • 볼 수 있듯이 함수를 만들 때 함수 이름 (<🎜 🎜>)을 선언하십시오. 이것은 기능을 정의하기 전에 호출 할 수 있음을 의미합니다.
  • 이것은 함수 선언의 예입니다
  • 함수 표현식이란 무엇입니까?
  • 기능 표현은 함수를 생성하고 변수에 할당 할 때 수행됩니다. 함수는 익명이므로 이름이 없음을 의미합니다. 예를 들면 :

알 수 있듯이 함수는 <🎜 🎜> 변수에 할당됩니다. 이것은 기능을 호출하기 전에 정의해야한다는 것을 의미합니다.

이것은 함수 표현식의 예입니다 : <🎜 🎜>

함수 표현식과 선언의 차이 <🎜 🎜> 함수 표현식과 함수 선언에는 몇 가지 주요 차이점이 있습니다.

    함수 선언은 홍보되는 반면 기능 표현은 그렇지 않습니다. 즉, 함수 선언을 정의하기 전에 호출 할 수 있지만 함수 표현식으로는이 작업을 수행 할 수 없습니다.
  • 함수 표현식을 사용하면 함수를 정의한 직후에 사용할 수 있습니다. 함수 선언을 사용하면 전체 스크립트가 구문 분석 될 때까지 기다려야합니다.
  • 기능 표현은 다른 함수의 매개 변수로 사용될 수 있지만 함수 선언은 수행 할 수 없습니다.
  • 기능 표현은 익명 일 수 있지만 함수 선언은 할 수 없습니다.
  • 함수 표현식의 범위 이해 : JavaScript는 차이를 향상시킵니다
  • 진술과 유사하게 함수 선언은 다른 코드의 최상위로 홍보됩니다.
  • 기능 표현은 홍보되지 않습니다. 이를 통해 정의 된 범위에서 가져온 로컬 변수의 사본을 유지할 수 있습니다.
일반적으로 함수 선언 및 함수 표현식을 상호 교환 적으로 사용할 수 있습니다. 그러나 때때로 기능 표현은 임시 기능 이름없이 이해하기 쉬운 코드로 이어집니다.

표현 및 선언을 선택하는 방법 <🎜

그러면 언제 기능 표현을 사용해야하고 언제 기능 선언을 사용해야합니까?

답은 귀하의 요구에 따라 다릅니다. 보다 유연한 함수 또는 홍보되지 않는 함수가 필요한 경우 기능 표현이 최선의 선택입니다. 더 읽기 쉽고 이해하기 쉬운 기능이 필요한 경우 함수 선언을 사용하십시오. let 보시다시피, 두 개의 구문은 비슷합니다. 가장 분명한 차이점은 기능 표현이 익명이며 함수 선언은 유명하다는 것입니다.

<,> 요즘에는 함수 표현식이 수행 할 수없는 일을해야 할 때 기능 선언이 일반적으로 사용됩니다. 함수 선언으로 만 수행 할 수있는 작업을 수행 할 필요가없는 경우 일반적으로 기능 표현식을 사용하는 것이 좋습니다.

재귀 함수를 만들어야하거나 함수를 정의하기 전에 함수를 호출해야 할 때 기능 선언을 사용하십시오. 일반적으로 두 가지를 모두 수행 할 필요가 없을 때는 기능 표현을 사용하여 클리너 코드를 작성하십시오.

함수 선언의 장점

함수 선언을 사용하는 데 몇 가지 주요 장점이 있습니다.

코드를보다 쉽게 ​​읽을 수 있습니다. 기능이 긴 경우 이름을 지정하면 수행하는 작업을 추적하는 데 도움이 될 수 있습니다.

함수 선언이 홍보되므로 코드에 정의되기 전에 사용할 수 있습니다. 기능을 정의하기 전에 사용해야하는 경우 도움이됩니다.

함수 표현식의 장점 <🎜 🎜> 기능 표현에는 몇 가지 장점이 있습니다.

그들은 함수 선언보다 유연합니다. 함수 표현식을 생성하고 다른 변수에 할당 할 수 있습니다. 이는 다른 위치에서 동일한 함수를 사용해야 할 때 유용합니다.

기능 표현식은 홍보되지 않으므로 코드에서 정의하기 전에 사용할 수 없습니다. 기능을 정의한 후에 만 ​​사용하려면 도움이됩니다.

언제 함수 선언과 함수 표현식을 선택 해야하는지 <🎜

<,> 대부분의 경우, 귀하의 요구에 가장 적합한 기능을 정의하는 방법을 쉽게 결정할 수 있습니다. 이 지침은 대부분의 경우 신속하게 결정을 내리는 데 도움이됩니다.

다음 경우 기능 선언 사용 : <🎜 🎜>

    더 읽기 쉽고 이해할 수있는 기능 (예 : 긴 기능 또는 다른 위치에서 사용하는 기능)이 필요합니다. 익명 함수는 귀하의 요구에 적합하지 않습니다 재귀 함수를 만들어야합니다 함수를 정의하기 전에 호출해야합니다
  • 다음 경우 기능 표현식 사용 : <🎜 🎜>
  • 더 유연한 기능이 필요합니다 <🎜
  • <🎜 🎜>로 승진하지 않는 함수가 필요합니다 이 함수는 정의 된 경우에만 사용해야합니다
  • 이 함수는 익명이거나 미래에 이름이 필요하지 않습니다
  • 는 기능 표현식을 즉시 호출하는 것과 같은 기술을 사용하여 함수의 실행 시간을 제어하려고합니다 (iife) <🎜 🎜
  • 당신은 다른 함수로 인수로 함수를 전달하려고합니다 <🎜 🎜>
  • 즉, 많은 경우에 기능 표현의 유연성이 강력한 이점이됩니다.
  • 기능 표현식의 잠재력 : javaScript는 차이를 향상시킵니다
기능 선언보다 더 유용한 기능 표현 방법에는 여러 가지가 있습니다.

    닫는 <🎜 🎜> 다른 기능의 주장 <🎜 🎜> 함수 표현식을 즉시 호출하십시오 (iife) <🎜 🎜>
  • 함수 표현식을 사용하여 클로저를 만듭니다 클로저를 실행하기 전에 매개 변수를 함수로 전달하려면 클로저를 사용할 수 있습니다. 노드리스트를 통해 반복 할 때 이것이 어떻게 혜택을 받는지에 대한 좋은 예입니다.
  • 클로저를 사용하면 함수가 실행 된 후 정보를 사용할 수없는 경우 인덱스와 같은 추가 정보를 유지할 수 있습니다.
  • 추가 이벤트 핸들러는 나중에 (루프 종료 후) 실행되므로 <🎜 🎜> 루프의 적절한 값을 보존하려면 폐쇄가 필요합니다.
  • <🎜 🎜> 루프에서
  • 함수를 추출하여 문제가 발생하는 이유를 이해하는 것이 더 쉽습니다.
  • 여기서 솔루션은 인덱스를 함수 매개 변수로 외부 함수로 전달하여 값을 내부 함수로 전달할 수 있도록하는 것입니다. 일반적으로 핸들러 기능을 사용하여 내부 반환 기능을 구성하는 데 필요한 정보가 표시됩니다.
  • 패키지 폐쇄 및 사용법에 대해 자세히 알아보십시오.
  • 매개 변수로 함수 표현식을 전달합니다 기능 표현은 중간 임시 변수에 값을 할당 할 필요없이 함수로 직접 전달 될 수 있습니다.
당신은 그것들을 익명 기능의 형태로 가장 자주 보게됩니다. jQuery 함수 표현식의 친숙한 예는 다음과 같습니다.

기능 표현식은 <🎜 🎜>와 같은 메소드를 사용할 때 배열 항목을 처리하는 데 사용됩니다.

그들은 또한 이름이없는 익명 기능 일 필요가 없습니다. 기능 표현을 지명하여 기능이 무엇을 해야하는지 표현하고 디버그를 도와주는 것이 가장 좋습니다.

함수 표현식을 즉시 호출하십시오 (iife) <🎜 🎜> iife는 기능과 변수가 글로벌 범위에 영향을 미치는 것을 방지하는 데 도움이됩니다. </h2> <ies> 그 안의 모든 속성은 익명 함수의 범위 내에 있습니다. 이것은 다른 곳에서 코드에서 예상치 못한 또는 바람직하지 않은 부작용을 방지하는 일반적인 패턴입니다. <p> <used> 쉽게 유지 관리되는 섹션에 코드 블록을 포함하는 모듈 모드로도 사용됩니다. 우리는 JavaScript 폐쇄, 콜백 및 iife의 미스터리를 밝혀내는 데 더 심층적 인 것을 탐구합니다. </p> <simple> 이것은 iife의 간단한 예입니다 : <🎜 🎜><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>function funcDeclaration() { return '函数声明'; } let funcExpression = function () { return '函数表达式'; }
로그인 후 복사

… 모듈로 사용하면 코드를 쉽게 유지할 수 있습니다.

function myFunction() {
  // 执行某些操作
};
로그인 후 복사
결론 <🎜 🎜> 우리가 볼 수 있듯이 함수 표현식은 기능 선언과 근본적으로 다르지 않지만 종종 더 깨끗하고 읽기 쉬운 코드를 생성 할 수 있습니다.

그들은 널리 사용되므로 모든 개발자 도구 상자의 필수 부분이됩니다. 위에서 언급하지 않은 흥미로운 방식으로 코드에서 기능 표현을 사용하고 있습니까? 의견에 알려주세요!

함수 표현 및 함수 선언에 대한 FAQ (FAQ) <🎜 <🎜 <🎜 <🎜 <🎜 <🎜
함수 표현과 함수 선언의 주요 차이점은 무엇입니까?

함수 표현식과 함수 선언의 주요 차이점은 JavaScript 엔진이 해석하는 방식입니다. 함수 선언은 코드가 실행되기 전에 구문 분석됩니다. 즉, 코드 후반에 선언 된 함수를 호출 할 수 있습니다. 이것을 기능 리프팅이라고합니다. 반면에, 기능 표현은 홍보되지 않으므로 정의 전에 호출 할 수 없습니다.

기능 선언 및 기능 표현의 예를 제공 할 수 있습니까?

물론 여기에 각각의 예가 있습니다.

함수 선언 : <🎜 🎜>

<<> 함수 표현 :

기능 표현 대신 기능 선언을 언제 사용해야합니까?

코드 전체에서 사용될 함수를 만들어야 할 때는 기능 선언이 일반적으로 범위 상단으로 홍보되기 때문에 사용됩니다. 즉, 코드에서 선언하기 전에 함수를 호출 할 수 있습니다. 반면에 함수 표현식은 일반적으로 한 번 또는 한 번만 한 번만 필요한 함수에 사용되거나 함수가 다른 함수에 대한 인수로 전달 될 때 사용됩니다.

기능 표현이 명명 될 수 있습니까?

예, 함수 표현식을 명명 할 수 있습니다. 기능 이름이 스택 트레이스에 나타나기 때문에 디버깅에 매우 유용합니다. 예는 다음과 같습니다.

기능 개선이란 무엇입니까?

JavaScript의 기능 프로모션은 컴파일 단계 (코드가 실행되기 전) 동안 함수 선언이 포함 된 범위의 상단으로 이동하는 동작입니다. 즉, 코드에서 선언하기 전에 함수를 호출 할 수 있습니다. 그러나 함수 표현식 (변수에 할당 된 표현조차도)은 홍보되지 않습니다.

즉시 (iife)라고 불리는 함수 표현식은 무엇입니까?

기능 표현식을 즉시 호출 (IIFE)은 정의 직후에 실행되는 함수 표현식입니다. iife의 구문은 다음과 같습니다

함수 표현식 및 함수 선언을 상호 교환 적으로 사용할 수 있습니까?

기능 표현 및 기능 선언은 일반적으로 상호 교환 적으로 사용되지만 몇 가지 주요 차이점이 있습니다. 함수 선언이 촉진되므로 선언 전에 호출 할 수 있습니다. 반면에, 기능 표현은 홍보되지 않으므로 정의 전에 호출 할 수 없습니다. 또한 함수 표현식은 익명이거나 명명 될 수 있지만 함수 선언은 항상 이름을 지정해야합니다.
function add(a, b) {
  return a + b;
};
로그인 후 복사
함수 표현식 사용의 장점은 무엇입니까?

기능 표현은 몇 가지 장점을 제공합니다. 익명이 될 수 있고, 자체적으로 자체적으로 설정할 수 있으며 (즉시 호출 함수 표현식) 변수에 할당되어 통과 할 수 있습니다. 이로 인해 기능 표현은 클로저 및 콜백 기능으로 사용하기에 매우 적합합니다.

기능 표현과 함수 선언 사이에 성능 차이가 있습니까?

일반적으로 함수 표현식과 함수 선언의 성능 차이는 무시할 수 있으며 JavaScript 코드의 성능에 영향을 미치지 않을 것입니다. 기능 표현 및 기능 선언 선택은 특정 사용 사례 및 코딩 스타일 기본 설정을 기반으로해야합니다.

기능 표현이 클로저로 사용될 수 있습니까?

예, 기능 표현은 종종 JavaScript에서 클로저를 만드는 데 사용됩니다. 클로저는 자체 범위, 외부 함수의 범위 및 글로벌 범위에 액세스 할 수있는 함수입니다. 다음은 기능 표현식을 사용하여 생성 된 예제 폐쇄입니다.

위 내용은 함수 표현식 대 함수 선언을 사용하는 시점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿