함수는 JavaScript에서 가장 유연한 객체입니다. 여기서 우리는 단지 익명 기능의 목적을 설명합니다. 익명 함수는 함수 이름이나 포인터를 지정하지 않는 함수를 나타냅니다. 자체 이행 익명 기능은 그중 하나 일뿐입니다. 다음을이 기능이라고합니다. 자체 집행 함수.
다음은 가장 일반적인 자체 실행 기능 중 하나입니다.
// 전통적인 익명 함수 (function () {alert ( 'hello');}) ();이 코드의 실행 효과는 페이지가 다시로드되면 팝업됩니다. "Hello"
자동으로 실행하도록 유도하는 것은 무엇입니까? , 다음 코드를 참조하십시오
// 전통적인 쓰기에서 괄호를 제거하고 연산자 ~,!,+,-~ function () {alert ( 'hello');} () ;! function () {alert ( 'hello');} ();+function () {alert ( 'hello');-function () {alert ( 'hello');이러한 작문 방법은 위에서 언급 한 전통적인 방법과 다르지 않습니다.
이 글쓰기 방법의 공통점은 운영자라는 것을 알았습니다. 실제로, 전통적인 괄호 () 방법 ()은 다음 유형의 작동에 속하며 : a = b*(c+d)에 나타납니다.
연산자 + 자체 생성 = 함수로 전달 된 매개 변수는 자동으로 실행됩니까? 그러나 "=, *, /"부호와 같은 일부 기호도 지원되지 않습니다. 그것이 자체를 실행하는 이유는 여전히 신비 롭고 인터넷에는 괜찮은 답이 없습니다.
그런 다음이 연산자들을 무한히 겹칠 수있는 마법의 현상을 발견했습니다. . . . . .
// 함수는 겹칠 수있는 특정 기호가 앞에 있습니다. 무한히 ... ~!+-~!+-~-~!+-~-~! ~!+-~!+-~!+-~-~-~-~-~-~!+-~-~-~!+-~-~-~-~-~-~-~-~! ~! ~! ~! ~! ~! ~! ~! ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~-~!+-~-~-~-~-~!+-~-~!+ -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~-~-~-~!+-~! ~! ~! ~-~!+-~-~-~! +-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~-~! ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~-~!+-~-~-~-~-~!+-~-~!+ -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~-~-~-~!+-~! ~! ~! ~-~!+-~-~-~! +-~!+-~-~~~~~~~~~~~~~~~~~~~!+!+-~ ~~~~~~~~~~~~~~~~~~~~!
프로그램은 정상적으로 실행됩니다 !!!!!!
그러나 오류 가보고되는 두 가지 상황이 있습니다.
3 개 이상의 "+"또는 "-"기호가 연속적으로 나타나면 오류가 발생합니다.
두 "+"또는 "-"기호가 연속적으로 나타나고 다른 기호가 이어지면 "++ ~", "-+"와 같은 오류가 발생합니다.
오류 프롬프트 : Uncakt ReferenceError : 접두사 작동에서 유효하지 않은 왼쪽 표현식 (왼쪽 표현 오류를 의미)
그런 다음 같은 기호를 사용하여 변수를 계산하여 정확히 동일하다는 것을 알았습니다. 이것은 이미 JavaScript의 작업이 함수의 자동 실행을 유발하거나 작업을 통해이 기능을 호출하는 것으로 이해 될 수 있음을 이미 설명 할 수 있습니다!
함수가 자체적으로 실행되는 것이 아니라이 기능은 작업을 통해 호출됩니다! 그러나 몇 가지 계산 방법 만 지원됩니다!
또한,이 자체 실행 기능은 익명 기능이 아닐 수 있습니다! 위의 코드를 살펴보면 연산자 이후 함수의 함수 이름 a를 정의했지만 예외는 없었지만 쓸모가 없었습니다.
위는 편집자가 귀하에게 소개 한 JavaScript 자체 이행 익명 함수 (function () {}) ()의 원리에 대한 간단한 분석입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!