Home > Web Front-end > JS Tutorial > What Does the Exclamation Mark Do in JavaScript Function Expressions?

What Does the Exclamation Mark Do in JavaScript Function Expressions?

DDD
Release: 2024-12-20 13:03:17
Original
906 people have browsed it

What Does the Exclamation Mark Do in JavaScript Function Expressions?

The Enigmatic Exclamation Mark in JavaScript Function Expressions

In the realm of JavaScript code, you may have encountered a curious sight: an exclamation mark preceding a function declaration. This seemingly不起眼的符号 holds a profound significance that alters the very nature of the function.

The exclamation mark, !, transforms a function declaration into a function expression. This means the function is now treated as a value that can be assigned to a variable, passed as an argument, or even returned from another function.

To understand the implication, consider the following code:

function foo() {}
Copy after login

This is a standard function declaration, which merely defines the function but does not invoke it. To actually execute the function, you would call it like this:

foo()
Copy after login

Now, let's introduce the exclamation mark:

!function foo() {}();
Copy after login

This seemingly harmless addition changes the ball game. The exclamation mark turns the function declaration into an expression, which can now be immediately invoked by appending parentheses. The precedence of parentheses is higher than that of the exclamation mark, so the code executes as:

(function foo() {})()
Copy after login

This essentially accomplishes the same task as the explicit invocation in the previous example. However, it offers a subtle advantage: it saves a byte per function expression.

Furthermore, the exclamation mark also serves another purpose. It forces the expression to return a boolean value based on the return value of the function. However, in the case of immediately invoked function expressions (IIFEs), the return value is typically undefined, making the result of the expression true. This boolean value is not typically used, but it is nonetheless a curious side effect of the exclamation mark's presence.

The above is the detailed content of What Does the Exclamation Mark Do in JavaScript Function Expressions?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template