MST

星途 面试题库

面试题:JavaScript中IIFE的常见用途

请简述JavaScript立即执行函数表达式(IIFE)在实际项目开发中的常见用途,并各举一个简单代码示例。
50.1万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 创建独立作用域,避免变量污染 在大型项目中,全局变量容易相互冲突。IIFE 可以创建一个独立的作用域,将内部变量和函数封装起来,不会影响全局作用域。
// 示例
(function () {
    let localVar = '我是 IIFE 内部的局部变量';
    console.log(localVar);
})();
// 这里无法访问 localVar,因为它在 IIFE 的独立作用域内
  1. 模块模式 通过 IIFE 模拟模块,将相关功能封装在一起,只暴露需要的接口。
// 示例
const myModule = (function () {
    let privateVar = 10;
    function privateFunction() {
        console.log('这是一个私有函数');
    }
    return {
        publicFunction: function () {
            privateFunction();
            console.log('修改前 privateVar: ', privateVar);
            privateVar++;
            console.log('修改后 privateVar: ', privateVar);
        }
    };
})();
myModule.publicFunction();
  1. 用于异步操作 在异步操作时,可以使用 IIFE 传递参数并创建一个作用域,避免闭包带来的变量问题。
// 示例
for (let i = 0; i < 5; i++) {
    (function (index) {
        setTimeout(() => {
            console.log(`这是第 ${index} 次延迟输出`);
        }, index * 1000);
    })(i);
}