常用立即函数写法
立即执行函数表达式(IIFE,Immediately Invoked Function Expression)是一种在定义时立即执行的 JavaScript 函数。除了你提到的写法,还有以下几种常见的写法:
1. 经典写法(最常用)
(function() {
console.log("IIFE 执行了");
})();
2. 将函数包裹在括号中
(function() {
console.log("IIFE 执行了");
}());
3. 使用 void
操作符
void function() {
console.log("IIFE 执行了");
}();
4. 使用一元运算符(如 +
, -
, !
, ~
等)
+function() {
console.log("IIFE 执行了");
}();
!function() {
console.log("IIFE 执行了");
}();
5. 使用 new
关键字
new function() {
console.log("IIFE 执行了");
};
6. 使用箭头函数(ES6+)
(() => {
console.log("IIFE 执行了");
})();
7. 带参数的 IIFE
(function(a, b) {
console.log(a + b);
})(1, 2);
8. 异步 IIFE(支持 await
)
(async function() {
const result = await fetch('https://example.com');
console.log(result);
})();
9. 使用 let
或 const
块级作用域(ES6+)
{
const message = "IIFE 执行了";
console.log(message);
}
总结
- 最常见的写法是
(function() {})()
或(function() {}())
。 - 其他写法(如
void
、一元运算符等)主要是为了确保函数被解析为表达式而非声明。 - 现代 JavaScript 中,块级作用域(
{}
)可以替代部分 IIFE 的使用场景。
选择哪种写法取决于个人偏好和代码风格,但经典写法是最广泛接受和使用的。
