스택큐힙리스트

You didn't provide the HTML code, so I can't translate the p-tag into Korean. However, I can still explain what the exclamation mark does before a function.In web development, the exclamation mark or "!" is often used as a shorthand for the document typ.. 본문

카테고리 없음

You didn't provide the HTML code, so I can't translate the p-tag into Korean. However, I can still explain what the exclamation mark does before a function.In web development, the exclamation mark or "!" is often used as a shorthand for the document typ..

스택큐힙리스트 2024. 2. 27. 10:29
반응형

나는 이 코드를 찾았다:


!function () {}();

여기서 느낌표의 목적은 무엇인가요?

답변 1

자바스크립트 구문 101: 여기에는 함수 선언이 있습니다:


function foo() {}

세미콜론이 없다는 점에 유의하세요; 이것은 단지 함수 선언일 뿐입니다. 실제로 함수를 실행하려면 호출 foo()를 사용해야 합니다.


이제 우리가 보기에는 무해한 느낌표를 추가하면: !function foo() {}이것은 표현식으로 변합니다. 이제 이것은 함수 표현식입니다.


! 자체는 함수를 호출하지 않습니다. 물론, 우리는 ()를 끝에 추가할 수 있습니다: !function foo() {}(), 이렇게 하면 !보다 높은 우선순위로 함수를 즉시 호출합니다.


function foo() {}()는 구문 오류가 될 것입니다. 왜냐하면 함수 선언 바로 뒤에 인수 (())를 넣을 수 없기 때문입니다.

그래서 작성자가 하는 것은 함수 표현식당 1바이트를 저장하는 것이다. 더 읽기 쉬운 방법으로 작성하는 방법은 다음과 같다:


(function(){})();

마지막으로, !은 표현식에서 함수의 반환 값을 기반으로 부울 값을 반환한다. 일반적으로 즉시 호출 함수 표현식(IIFE)은 명시적으로 아무것도 반환하지 않기 때문에 반환 값은 undefined가 되고, 이로써 !undefined가 되어 true가 된다. 이 부울 값은 사용되지 않는다.

답변 2

Function 앞의 느낌표는 무엇을 하는 것일까요?
SEO-friendly Korean Essay
함수 앞의 느낌표는 함수의 동작 방식을 바꾸는 역할을 합니다. 이 느낌표는 JavaScript 언어에서 사용되며, 함수를 선언할 때 제공되는 특별한 기능을 나타냅니다. 이러한 기능은 함수를 더 유연하고 효과적으로 사용할 수 있도록 도와줍니다.
특히, 느낌표를 사용하여 정의된 함수는 생성자 함수로서 작동하게 됩니다. 생성자 함수는 객체를 생성하고 초기화하는 데 사용되며, new 연산자와 함께 호출되어야 합니다. 이는 함수가 객체를 반환하도록 지시하여 새로운 인스턴스를 생성하는 데 도움이 됩니다.
함수 선언을 생성자로 바꾸는 느낌표는 함수 호출 시 다음과 같은 순서로 작동합니다. 우선 새로운 빈 객체가 생성되고, 이 객체는 함수 내의 this라는 특정 변수에 바인딩됩니다. 그런 다음 생성자 함수 내에서 정의된 초기화 코드가 실행됩니다. 이 초기화 코드는 주로 새로운 인스턴스의 프로퍼티를 초기화하는 데 사용됩니다. 마지막으로, 새로운 인스턴스가 반환되어 변수에 할당되거나, 필요에 따라 다른 작업에 사용됩니다.
느낌표를 사용하여 함수를 생성자로 정의하는 이유는 다양합니다. 예를 들어, 함수 내에서 특정 변수에 접근하거나, 고유한 속성을 가진 객체를 생성하는 등의 작업을 수행할 수 있습니다. 이는 단순히 함수 호출로는 구현하기가 어려운 기능이나 동작을 추가할 때 유용하게 활용할 수 있습니다.
함수 앞의 느낌표는 JavaScript에서 흔히 볼 수 있는 문법 중 하나이지만, 모든 상황에서 사용되는 것은 아닙니다. 올바른 상황에서 적절하게 사용되면 함수의 유연성과 확장성을 높여 컴퓨터 프로그램 개발에 도움이 되는 강력한 기능 중 하나입니다.

반응형
Comments