0

0

什么是Javascript的立即执行函数表达式?

幻影之瞳

幻影之瞳

发布时间:2025-12-18 03:59:28

|

314人浏览过

|

来源于php中文网

原创

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

什么是javascript的立即执行函数表达式?

立即执行函数表达式(IIFE,Immediately Invoked Function Expression)是 JavaScript 中一种定义后立刻运行的函数写法。它的核心作用是创建独立的作用域,避免变量污染全局环境,常用于模块封装、私有变量实现和一次性初始化逻辑。

基本写法和为什么需要括号

IIFE 的典型形式是把函数表达式用圆括号包裹,再在后面加一对括号来调用:

`(function() { console.log('hello'); })();`

括号的作用是告诉 JavaScript 引擎:这是一个函数表达式,而不是函数声明。因为函数声明不能直接加 () 执行,而表达式可以。常见的合法写法还有:

  • (function(){})()
  • (function(){}())
  • !function(){}()
  • +function(){}()

这些符号(!+- 等)都能让引擎把后面的 function 当作表达式处理。

立即学习Java免费学习笔记(深入)”;

带参数的 IIFE 和常见用途

IIFE 可以接收参数,常用来传入全局对象或配置项:

Python精要参考 pdf版
Python精要参考 pdf版

这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,David M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)

下载
(function(window, document, undefined) {
  var privateVar = 'secret';
  console.log(window === window);
})(window, document);

这种写法在老版本 jQuery 插件或兼容性代码中很常见。它能确保 undefined 是真正的未定义值,也方便压缩工具window 替换为更短的变量名。

现代替代方案与注意事项

ES6 后,模块(import/export)、let/const 块级作用域和闭包已部分取代 IIFE 的作用。但在以下场景仍实用:

  • 需要严格隔离作用域的老项目或库中
  • 循环中绑定正确索引(如 for (var i=0; iconsole.log(i),0) })(i)
  • 模拟私有成员(配合闭包返回公共接口)

注意:箭头函数不能用作 IIFE 的主体,因为它没有自己的 thisarguments,且语法上不支持直接调用形式 (() => {})() 在某些解析器中可能报错,建议坚持用传统函数。

基本上就这些。IIFE 不复杂但容易忽略它的本质——不是语法特性,而是利用 JS 表达式求值规则达成的编程模式。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

151

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

313

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

398

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

505

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

207

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

121

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

177

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

44

2026.01.13

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

19

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.6万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号