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
来创建块级作用域。