javascript现代编程系列教程之二——IIFE
IIFE(Immediately Invoked Function Expression,立即执行函数表达式)是一个在定义后立即执行的JavaScript函数。它具有以下特点:
- 是一个匿名函数:通常情况下,IIFE 是一个没有名字的函数,称为匿名函数。
- 立即执行:这个函数在声明后立即被调用并执行,而无需手动调用。
- 创建局部作用域:它创建了一个新的函数作用域,从而使得在其中声明的变量不会污染全局作用域。
IIFE 的基本语法如下:
(function() {
// 这里插入你要执行的代码
})();
这是一个典型的IIFE。首先,在外层使用一对圆括号将整个函数表达式括起来。这可以确保 JavaScript 引擎将其视为函数表达式,而非函数声明。接着,又使用一对圆括号立即调用这个函数。
在 IIFE 内部,你可以定义变量和函数,而它们只在这个函数作用域内可见。这有助于避免全局作用域中的命名冲突和变量污染。
例如:
(function() {
var a = 1;
console.log(a); // 输出 1
})();
console.log(a); // 抛出 ReferenceError,因为 'a' 在 IIFE 之外不可见
如果你需要向 IIFE 传递参数,可以将参数放在立即调用的圆括号内。例如:
(function(x, y) {
console.log(x + y); // 输出 3
})(1, 2);
总结一下,IIFE 是一个立即执行的匿名函数,用于创建局部作用域并避免全局作用域污染。这在较早版本的 JavaScript 中(如ES5)非常有用,因为当时还没有let
和const
来创建块级作用域。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!