독특한 외관에도 불구하고 JavaScript를 사용하면 함수가 명시적으로 정의되기 전에 사용할 수 있습니다. 마술처럼 보이는 이 동작은 함수 선언의 특수한 특성에서 비롯됩니다.
JavaScript에서 함수 선언은 함수 표현식을 사용한 할당과 다르게 동작합니다. function 키워드를 사용하여 함수를 선언하면 해당 식별자는 함수 블록 내의 코드가 실행되기 전에 바인딩됩니다.
예를 들어 다음 코드를 고려해보세요.
function fooCheck() { alert(internalFoo()); // Uses internalFoo() before definition return internalFoo(); // Still uses it function internalFoo() { return true; } // Defined later } fooCheck();
이 코드에서 , fooCheck 함수는 나중에 동일한 블록 내에서 정의되더라도 InternalFoo 함수에 액세스할 수 있습니다. 함수 선언 자체가 식별자 innerFoo를 바인딩하고 사용할 수 있게 만들기 때문입니다.
반대로 정의를 변수에 할당된 함수 표현식으로 변경하면 , 코드는 더 이상 작동하지 않습니다.
var internalFoo = function() { return true; };
함수 표현식은 위에서 아래로 평가되고 fooCheck가 호출된 후에만 할당 문이 실행되기 때문입니다.
함수 선언과 함수 표현식은 구문적으로 별개의 개체입니다. 함수 선언은 명령문이고, 함수 표현식은 표현식입니다. 이러한 차이로 인해 코드 예제에서 관찰되는 동작이 달라집니다.
이 동작은 ECMAScript 표준(섹션 10.1.3)에 설명되어 있습니다. 표준은 가장 쉽게 읽을 수 있는 것은 아니지만 JavaScript의 복잡한 측면에 대한 포괄적인 설명을 제공합니다.
위 내용은 JavaScript 함수를 정의하기 전에 사용할 수 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!