IIFE是定义后立即执行的函数表达式,用于创建独立作用域、避免全局污染;需用括号或运算符强制解析为表达式,支持传参,现代可用模块和块级作用域替代,但老项目、循环绑定索引等场景仍适用。

立即执行函数表达式(IIFE,Immediately Invoked Function Expression)是 JavaScript 中一种定义后立刻运行的函数写法。它的核心作用是创建独立的作用域,避免变量污染全局环境,常用于模块封装、私有变量实现和一次性初始化逻辑。
IIFE 的典型形式是把函数表达式用圆括号包裹,再在后面加一对括号来调用:
`(function() { console.log('hello'); })();`括号的作用是告诉 JavaScript 引擎:这是一个函数表达式,而不是函数声明。因为函数声明不能直接加 () 执行,而表达式可以。常见的合法写法还有:
这些符号(!、+、- 等)都能让引擎把后面的 function 当作表达式处理。
立即学习“Java免费学习笔记(深入)”;
IIFE 可以接收参数,常用来传入全局对象或配置项:
这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,David M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)
9
这种写法在老版本 jQuery 插件或兼容性代码中很常见。它能确保 undefined 是真正的未定义值,也方便压缩工具将 window 替换为更短的变量名。
ES6 后,模块(import/export)、let/const 块级作用域和闭包已部分取代 IIFE 的作用。但在以下场景仍实用:
for (var i=0; iconsole.log(i),0) })(i))注意:箭头函数不能用作 IIFE 的主体,因为它没有自己的 this 和 arguments,且语法上不支持直接调用形式 (() => {})() 在某些解析器中可能报错,建议坚持用传统函数。
基本上就这些。IIFE 不复杂但容易忽略它的本质——不是语法特性,而是利用 JS 表达式求值规则达成的编程模式。
以上就是什么是Javascript的立即执行函数表达式?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号