JavaScript 함수 표현식의 수수께끼 같은 느낌표
JavaScript 코드 영역에서 이상한 광경을 접했을 수도 있습니다: 느낌표 함수 선언 앞에. 겉보기에는 이상해 보이는 이 표현은 함수의 본질 자체를 바꾸는 심오한 의미를 담고 있습니다.
느낌표(!)는 함수 선언을 함수 표현식으로 변환합니다. 이는 이제 함수가 변수에 할당되거나 인수로 전달되거나 다른 함수에서 반환될 수 있는 값으로 처리된다는 의미입니다.
의미를 이해하려면 다음 코드를 고려하세요.
function foo() {}
함수를 정의할 뿐 호출하지는 않는 표준 함수 선언입니다. 실제로 함수를 실행하려면 다음과 같이 호출하면 됩니다.
foo()
이제 느낌표를 소개하겠습니다.
!function foo() {}();
겉으로는 무해해 보이는 이 추가가 게임의 판도를 바꿉니다. 느낌표는 함수 선언을 표현식으로 변환하며, 이제 괄호를 추가하여 즉시 호출할 수 있습니다. 괄호의 우선순위가 느낌표의 우선순위보다 높으므로 코드는 다음과 같이 실행됩니다.
(function foo() {})()
이는 본질적으로 이전 예제의 명시적 호출과 동일한 작업을 수행합니다. 그러나 이는 함수 표현식당 바이트를 절약한다는 미묘한 이점을 제공합니다.
게다가 느낌표는 또 다른 용도로도 사용됩니다. 이는 표현식이 함수의 반환 값을 기반으로 부울 값을 반환하도록 강제합니다. 그러나 즉시 호출되는 함수 표현식(IIFE)의 경우 일반적으로 반환 값이 정의되지 않아 표현식의 결과가 true가 됩니다. 이 부울 값은 일반적으로 사용되지 않지만 그럼에도 불구하고 느낌표의 존재로 인한 흥미로운 부작용입니다.
위 내용은 JavaScript 함수 표현식에서 느낌표는 어떤 역할을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!