5.IIFE:它是什么,何时使用?

170 阅读2分钟

IIFE:它是什么,何时使用?

IIFE代表立即调用函数表达式​。这是一种在定义函数后立即执行函数的方法。

以下是IIFE的示例:

(function () {
  console.log("Hello, World!");
})();

该函数是通过将其包装在括号中来定义的,然后是另一组括号以立即执行该函数。

IIFE通常用于在JavaScript中创建新范围,这对于声明不应该是全局的变量很有用。它们还可用于避免不同JavaScript模块之间的命名冲突。

例如,您可以使用这样的IIFE:

(function () {
  // 声明不应该是全局的变量
  let name = "John";
  let age = 30;

  console.log(`My name is ${name} and I am ${age} years old.`);
})();

在这种情况下,变量的name​和age​仅在IIFE中可用,无法从全局范围内访问。这有助于防止与代码中可能定义的其他变量或函数发生命名冲突。

IIFE在JavaScript中很有用有几个原因:

  1. 它们创建了一个新范围:如前所述,IIFE可用于在JavaScript中创建一个新范围。这对于声明不应该是全局的变量和避免不同JavaScript模块之间的命名冲突很有用。
  2. 它们立即执行:由于函数在定义后立即执行,因此您可以使用IIFE在页面加载或发生特定事件时立即执行代码。
  3. 它们是自包含的:由于函数是在同一代码块中定义和执行的,因此您可以使用IIFE创建不污染全局范围的自包含代码单元。这可以使您的代码更易于理解和维护。
  4. 它们可以用来防止全局变量:过去,在JavaScript中使用全局变量在网页的不同部分之间共享数据是很常见的。但是,如果多个脚本或库使用相同的变量名称,全局变量可能会导致问题。通过使用IIFE,您可以避免全局变量并降低命名冲突的风险。