함수 이름 앞에 JavaScript 더하기 기호
나는 자체 호출 함수에 대한 정보를 찾고 있었고 어딘가 에서이 표기법을 우연히 발견했습니다.
+function(){}
누군가 +
기능 앞의 기호가 의미 / 의미를 설명 할 수 있습니까 ?
파서가 다음 부분을 +
표현식으로 처리하도록합니다. 일반적으로 즉시 호출되는 함수에 사용됩니다. 예 :
+function() { console.log("Foo!"); }();
+
거기가 없으면 구문 분석기가 명령문 (표현식 또는 여러 비 표현식 문일 수 있음)을 예상하는 상태에있는 경우 단어 function
는 함수 표현식이 아닌 함수 선언 의 시작처럼 보이기 때문에 다음과 같습니다. (위의 줄 끝에있는 것들은) 구문 오류 일 것입니다 (이 예에서 이름이없는 것처럼). 를 사용 하면 이름이 선택 사항이고 호출 할 수있는 함수에 대한 참조가 생성되므로 괄호가 유효합니다.()
+
+
옵션 중 하나 일뿐입니다. 그것은 또한 할 수있다 -
, !
, ~
, 또는 다른 모든 단항 연산자에 대해. 또는 괄호를 사용할 수 있습니다 (더 일반적이지만 구문 상 정확하지 않음).
(function() { console.log("Foo!"); })();
// or
(function() { console.log("Foo!"); }());
@TJCrowder의 답변에 대한 자회사 +
는 일반적 으로이 SO 답변이 설명하는 것처럼 값의 수치 캐스팅을 강제하는 데 사용됩니다 . 이 경우 '단항 더하기 연산자'(검색 용이성을 위해)라고합니다.
var num = +variant;
따라서 함수 앞에는 함수의 결과를 숫자로 해석하도록 강제하는 방법이 될 수 있습니다. 나는 그것이 아직 일어나지 않는지 의심 스럽지만 이론적으로 JIT는 함수를 숫자 전용 함수 등으로 컴파일하는 데 사용할 수 있습니다. 그러나 더 큰 표현식에서 사용될 때 단항 더하기가 연결되는 것을 방지하려면 괄호가 필요합니다.
blah + (+(function(){ var scope; return "4"; })());
따라서 짧은 대답은 함수 결과를 어떤 방식 으로든 사용하여 구문 오류를 방지한다는 것입니다.
void
연산자 를 사용하여 반환 값에 관심이 없음을 엔진에 지시 할 수도 있습니다 .
void function() { console.log("Foo!"); }();
물론, 전체에 중괄호를 두는 것도 그 목적에 부합합니다.
참고 URL : https://stackoverflow.com/questions/13341698/javascript-plus-sign-in-front-of-function-name
'Nice programing' 카테고리의 다른 글
두 위도-경도 지점 사이의 거리를 계산 하시겠습니까? (0) | 2020.09.28 |
---|---|
.css () 함수로 추가 된 스타일을 제거하려면 어떻게해야합니까? (0) | 2020.09.28 |
How to trim whitespace from a Bash variable? (0) | 2020.09.28 |
How to fix “Headers already sent” error in PHP (0) | 2020.09.28 |
How to prevent buttons from submitting forms (0) | 2020.09.28 |