Javascript 立即执行函数
IIFE,一般称为立即执行函数。你可能会问我,*“嘿!我知道正常的函数表达式是什么样子的,但是 IIFE 到底是什么?”。*好吧,这正是我今天要在本文中回答的问题。
函数表达式
在了解立即调用函数表达式之前,让我们快速回顾一下 JavaScript 中的普通函数表达式是什么样的。
function(){return ;
}
这就是我们通常在 JavaScript 中编写函数的方式。function关键字,然后是函数名称,然后是函数体。
在ES6之后,我们还可以编写箭头函数,以及将箭头函数赋值给变量。
ArrowFn(()=>{})
let ArrowFn=()=>{
}
通过上面的小例子,快速回顾了普通函数以及箭头函数的编写方式。下面我们介绍立即执行函数
重要的部分来了,为了调用上面的方法我们会怎么调用?你需要在任何你想要的地方显式地调用它。事实上,这就是我们首先编写普通函数表达式的主要原因。
ArrowFn()
立即执行函数
现在,我们了解了普通函数表达式在 JavaScript 中是如何工作的,让我们慢慢转向 IIFE。让我们尝试理解短语Immediately Invoked Functional Expressions。它的意思是:
立即调用:立即调用的东西。
函数表达式:到目前为止,我们已经研究过它们!
如果我们了解整个情况:
IIFE(立即调用函数表达式)是一个 JavaScript 函数,它在定义后立即运行。-MDN
所以,我们不需要显式调用这个函数来调用/运行它。它会在调用 JavaScript 文件后立即运行。IIFE 看起来像这样:
(function(){这里是函数体
})()

如果我们看语法本身,我们有两对闭括号,第一对包含要执行的逻辑,第二个通常是我们调用函数时包含的内容,第二个括号负责告诉编译器函数表达式必须立即执行。
以下是将普通函数转换为 IIFE 的方法
function consoleName(){console.log('hello 哈哈哈')
}
consoleName()(function(){console.log('hello 哈哈哈')})()
请注意,我们不需要对 IIFE 的显式调用。此外,这些只是匿名函数,因为它们不需要函数名。如果你愿意,你也可以给它命名。它们甚至也可以是箭头函数!
当然了,立即执行也接受参数,下面是一个小栗子:
function consoleName(name){console.log('hello '+ name)
}
consoleName('哈哈哈')(function(name){console.log('hello '+name)})("哈哈哈")
IIFE 的特征/行为
-
IIFE 像 JavaScript 中的任何其他函数/变量一样遵循自己的范围。立即调用的名称部分有时会使新开发人员感到困惑,因为他们希望 IIFE 执行而与函数范围无关,这是错误的。例如,让我们看下面的示例,其中 IIFE 是在函数中定义的,并且只有在我们调用父函数时才会立即调用。
function fn(){console.log("A");(()=>{console.log("B")})()console.log("C") }输出结果是A B C
-
与其他函数类似,IIFE 也可以命名或匿名,但即使 IIFE 确实有名称,也不可能引用/调用它。
-
IIFE 有自己的范围,即您在函数表达式中声明的变量在函数之外将不可用。
相关文章:
Javascript 立即执行函数
IIFE,一般称为立即执行函数。你可能会问我,*“嘿!我知道正常的函数表达式是什么样子的,但是 IIFE 到底是什么?”。*好吧,这正是我今天要在本文中回答的问题。 函数表达式 在了解立即调用函数表达式之前,让…...
基于Django和vue的微博用户情感分析系统
完整代码:https://download.csdn.net/download/weixin_55771290/87471350概述这里简单说明一下项目下下来直接跑起的方法。前提先搞好python环境和vue环境,保证你有一个账户密码连上数据库mysql。1、pip install requirements.txt 安装python包2、修改mysql数据库的…...
【C++】IO流
🌈欢迎来到C专栏~~IO流 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤…...
【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练
【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练 【论文原文】:CLEVE: Contrastive Pre-training for Event Extraction 【作者信息】:Wang, Ziqi and Wang, Xiaozhi and Han, Xu and Lin, Yankai and Hou, Lei and Liu, Zhiyuan and Li, Peng and …...
《自动驾驶规划入门》专栏结语
一、 源起 2021年10月12日,化学工业出版社的金编辑根据博客中留下的微信号联系上我,问我有没有出书的想法。从小到大,书与文字在我心里是有着神圣地位的。我在“想试试”与“害怕做不好”这两种矛盾的心情中,还是先应了下来。签了…...
【数据结构与算法】2.八大经典排序
文章目录简介1.分析排序算法2.插入排序2.1.直接插入排序2.2.希尔排序3.选择排序3.1.直接选择排序3.2.堆排序3.2.1.堆的数据结构3.2.2.算法实现4.交换排序4.1.冒泡排序4.2.快速排序5.归并排序6.基数排序7.八大排序算法总结简介 排序对于任何一个程序员来说,可能都不会…...
Windows 免安装版mysql,快速配置教程
简单步骤 下载并解压mysql压缩包,把 “<mysql根目录>/bin” 路径添加到系统环境变量path中命令行执行 mysqld --initialize --console,初始化data目录(数据库表文件默认存放在" <mysql安装根目录>/data "目录下&#…...
空间误差分析:统一的应用导向处理(Matlab代码实现)
👨🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...
【C++】引用、内联函数、auto关键字、范围for、nullptr
引用什么叫引用引用的特性常引用使用场景传值、传引用效率比较引用和指针的区别内联函数auto关键字(C11)基于范围的for循环(C11)指针空值nullptr(C11)引用 什么叫引用 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内…...
pytest数据驱动
文章目录一、数据驱动概念二、数据驱动yaml1、yaml的基本语法:2、yaml支持的数据格式:3、安装4、使用5、读取方法a、目录结构b、yaml文件c、测试方法d、测试用例e、测试结果三、数据驱动excel1、安装导入2、操作3、读取方法a、目录结构b、excel文件c、测…...
OSI七层网络模型
应用层 定义了各种应用协议规范数据格式:HTTP协议、HTTPS协议、FTP协议、DNS协议、TFTP、SMTP等等。 表示层 翻译工作。提供一种公共语言、通信。 会话层 1、可以从校验点继续恢复数据进行重传。——大文件 2、自动收发,自动寻址的功能。 传输层 1、…...
易基因|MeRIP-seq揭示m6A RNA甲基化通过调控组蛋白泛素化来促进癌症生长和进展:Cancer Res
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2022年05月16日,《Cancer Res》杂志发表了题为“M6A RNA Methylation Regulates Histone Ubiquitination to Support Cancer Growth and Progression”的研究论文,该…...
Java 日期处理踩过的坑
前言 整理Java日期处理遇到过的问题,希望对大家有帮助 制作不易,一键三连,谢谢大家。 1.用 Calendar 设置时间的坑 反例: //提供者模式获取实例Calendar calendar Calendar.getInstance();//获取当前时间Date currentDate c…...
一文吃透 Spring 中的IOC和DI(二)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
【期末指北】嵌入式系统——选择题(feat. ChatGPT)
作者|Rickyの水果摊 时间|2023年2月20日 基本信息 ☘️ 本博客摘录了一些 嵌入式系统 的 常见选择题,供有需求的同学们学习使用。 部分答案解析由 ChatGPT 生成,博主进行审核。 使用教材信息:《嵌入式系统设计与应…...
MyBatis-Plus——代码生成器(3.5.1+版本)
文章目录配置数据源配置(DataSource)全局配置(GlobalConfig)包配置(PackageConfig)策略配置(StrategyConfig)模板引擎配置(TemplateEngine)代码生成器测试样例…...
宁盾上榜第五版《CCSIP 2022 中国网络安全行业全景册》
2月1日,国内网络安全行业媒体Freebuf咨询正式发布《CCSIP(China Cyber Security Panorama)2022 中国网络安全行业全景册》第五版。宁盾作为国产身份安全厂商入驻身份识别和访问管理(SSO、OTP、IDaaS)及边界访问控制&am…...
【Linux系统】第七篇:Linux调试器gdb的使用
文章目录一、gdb简介二、gdb的安装三、gdb使用3.1、release和debug版本3.2、gdb基本使用命令1、启动gdb2、调试命令3、显示代码(list)4、断点命令(breakpoint)5 、变量命令(variable)6、特殊调试命令7、调用…...
Shell 特殊变量及其含义
shell是我们在linux下编写自动执行程序的常见脚本工具,通常会涉及到以下几个特殊变量,它们分别是:$#、$*、$、$?、$$。 变量含义$0当前脚本的文件名。$n(n≥1)传递给脚本或函数的参数。n 是一个数字,表示…...
LeetCode 2396. 严格回文的数字
如果一个整数 n 在 b 进制下(b 为 2 到 n - 2 之间的所有整数)对应的字符串 全部 都是 回文的 ,那么我们称这个数 n 是 严格回文 的。 给你一个整数 n ,如果 n 是 严格回文 的,请返回 true ,否则返回 fals…...
三星固件管理工具Bifrost:跨平台固件获取与处理的技术伙伴
三星固件管理工具Bifrost:跨平台固件获取与处理的技术伙伴 【免费下载链接】SamloaderKotlin 项目地址: https://gitcode.com/gh_mirrors/sa/SamloaderKotlin 在三星设备维护与开发工作中,获取和处理官方固件往往是一项复杂且耗时的任务。传统方…...
PyTorch 2.8动态计算图深度解析:自定义算子与性能优化技巧
PyTorch 2.8动态计算图深度解析:自定义算子与性能优化技巧 1. 动态计算图的核心魅力 PyTorch的动态计算图一直是其区别于其他深度学习框架的标志性特性。在2.8版本中,这个机制变得更加灵活高效。简单来说,动态计算图就像一张可以随时修改的…...
【Houdini】HDA参数编辑实战:从基础到高级技巧
1. HDA参数编辑基础入门 第一次打开Houdini的HDA参数面板时,我完全被那些密密麻麻的选项搞懵了。后来才发现,掌握几个核心概念就能轻松上手。HDA(Houdini Digital Asset)是Houdini中最强大的功能之一,它允许我们把复杂…...
YOLO26功能体验:官方镜像预置多种权重,开箱即用体验最新模型
YOLO26功能体验:官方镜像预置多种权重,开箱即用体验最新模型 1. 引言:告别环境配置,直接上手YOLO26 如果你对计算机视觉感兴趣,想试试最新的目标检测模型,那么YOLO26绝对值得关注。作为YOLO系列的最新成员…...
Qwen3-Reranker-0.6B效果实测:轻量级模型重排序能力展示
Qwen3-Reranker-0.6B效果实测:轻量级模型重排序能力展示 1. 引言:为什么需要重排序模型? 在信息检索和问答系统中,我们经常会遇到这样的场景:用户输入一个问题,系统返回多个相关文档。但如何判断哪些文档…...
SDXL 1.0绘图工坊:基于Docker的本地部署方案,纯离线无网络依赖
SDXL 1.0绘图工坊:基于Docker的本地部署方案,纯离线无网络依赖 1. 为什么选择本地部署SDXL 1.0 在AI绘图领域,SDXL 1.0代表了当前最先进的图像生成技术。与在线服务相比,本地部署具有三大不可替代的优势: 数据隐私保…...
OpenClaw移动办公:Qwen3-4B模型通过钉钉审批报销单
OpenClaw移动办公:Qwen3-4B模型通过钉钉审批报销单 1. 为什么选择OpenClaw处理报销流程? 去年夏天,我因为频繁出差积累了大量纸质发票,每次手工录入报销系统都要耗费整个下午。直到发现OpenClaw这个开源自动化框架,才…...
OpenClaw开发助手:Qwen3.5-9B支持的代码调试与日志分析
OpenClaw开发助手:Qwen3.5-9B支持的代码调试与日志分析 1. 为什么开发者需要AI辅助调试? 深夜两点,我盯着终端里不断刷新的错误日志,第17次尝试修复那个诡异的空指针异常。咖啡杯早已见底,而问题依然像迷宫般无解——…...
山东大学软件学院项目实训【个人1】
实验准备 经小组成员讨论最终决定开发基于大模型的法律文书智能摘要系统,由四人分工协作完成多源文档解析与数据预处理、结构化信息抽取与向量化存储、角色感知的个性化摘要生成、原文溯源与功能增强、文档分析管理与交互五个模块的内容。 创建gitee账号做好与队友…...
Windows下OpenClaw安装指南:一键对接Phi-3-mini-128k-instruct模型
Windows下OpenClaw安装指南:一键对接Phi-3-mini-128k-instruct模型 1. 为什么选择OpenClawPhi-3-mini组合? 去年我在尝试自动化办公流程时,发现市面上的RPA工具要么太笨重,要么需要复杂的编程。直到遇到OpenClaw这个开源智能体框…...
