什么是自执行函数?

什么是自执行函数 这里是修真院前端小课堂,本篇分析的主题是 【什么是自执行函数】 1.背景介绍 在详细讲解自执行函数之前,我们先来说一下这个函数在叫法上的争议。实际上不同的人对自执行函数的理解不太一样,第一种理解是,自执行即自动执行,也就是大家平时所谓的立即执行函数。 还有一种理解,即自执行函数是在函数内部执行函数本身,即我们平时常说的递归函数。不管是哪种理解,我们都没必要去纠结叫法上的准确... 阅读详情

这里是修真院前端小课堂,每篇分享文从

【 什么是自执行函数?】

大家好,我是IT修真院北京总院第24期的学员,一枚正直纯洁善良的web程序员
今天给大家分享一下,修真院官网js任务2,深度思考中的知识点——什么是自执行函数?

1.背景介绍
在详细讲解自执行函数之前,我们先来说一下这个函数在叫法上的争议。实际上不同的人对自执行函数的理解不太一样, 第一种理解是,自执行即自动执行,也就是大家平时所谓的立即执行函数

还有一种理解,即自执行函数是在函数内部执行函数本身,即我们平时常说的递归函数。不管是 哪种理解,我们都没必要去纠结叫法上的准确与否,因为相比于自执行函数,立即执行函数和递归函数 这两种叫法是我们更加熟悉的,实际上平时也很少会看到自执行函数这种叫法。立即执行函数和递归函数都很重要,因此今天打算对立即执行函数做一下介绍。

2.知识剖析
知识点1:直接在函数后面加()就可以立即执行吗?在函数声明后面加括号为什么会报错?

知识点2:如何实现立即执行函数

3.常见问题
对函数声明和函数表达式不能正确区分

4.解决方案
函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。

函数表达式 var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。

匿名函数:function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。

函数声明和函数表达式不同之处在于,一、Javascript引擎在解析javascript代码时会‘函数声明提升’(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式,二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用 。

5.编码实战
demo

6.扩展思考
立即执行函数有哪些用处?

javascript中没用私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉,根据javascript函数作用域链的特性,可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个“容器”,“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。

JQuery使用的就是这种方法,将JQuery代码包裹在( function (window,undefined){…jquery代码…} (window)中,在全局作用域中调用JQuery代码时,可以达到保护JQuery内部变量的作用。

7.参考文献
参考一:汤姆大叔的博客之立即调用的函数表达式

参考二:Javascript高级程序设计

Altium Designer 16安装教程(Windows11、小白教程) Altium Designer 16在Windows11中的超详细安装教程 阅读详情

相关推荐

RoCE Overlay

1. RoCE over vxlan 配置vxlan封装的RoCE流量,可以在PF switchdev模式下利用ovs bridge,或直接设置tc rules。下面将基于一对NIC互联的服务器介绍两种方式的使用,并分析封装后的数据包结构。 1.1. 基本配置 - VF与switchdev 首先创建VF,并为两个host设置PF的switchdev模式。使用ovs bridge或tc rules,...

sunshuying1010的博客 3063

自执行函数

文章目录1. 什么是自执行函数?2. 结构和功能3. 如何使用3.1. 惰性返回3.2. 模块化 1. 什么是自执行函数? 我们平时所说的自执行函数,也称立即调用函数。 (function () { statements })() 就像它的名字一样,这种结构具有“自执行”或者说“定义后立即调用”的功能。也有如下写法: (function () { statements }()) 首先,这种结构是一种特殊的函数表达式,因此称之为 立即调用函数表达式(Immediately Invoked

liu_moran的博客 5861

ROS2实战:手把手教你用walking机器人仿真实现医院多楼层自动配送(含实时地图切换)

本文详细介绍了如何利用ROS2和walking机器人仿真平台实现医院多楼层自动配送系统,重点讲解了动态地图切换技术和多楼层导航的实现方法。通过实时加载地图和优化电梯过渡策略,解决了医院复杂环境下的自主配送难题,为医疗物流自动化提供了实用解决方案。

weixin_29090917的博客 365

【JS】自执行函数

目录 立即调用的函数表达式 一、函数的声明与执行 二、 ()的问题 三、自执行函数表达式 四、自执行函数的应用 立即调用的函数表达式 在JavaScript中,会有自执行匿名函数:(function () {/*code*/} ) (),Self-executing anonymous function。 一、函数的声明与执行 函数声明与执行: // 声明函数fun0 function fun0(){ console.log("fun0"); .

m0_48982503的博客 1万+

告别测序污染:手把手教你用Decontam+SCRUB+FEAST完成微生物组数据清洗全流程

本文详细解析了使用Decontam、SCRUB和FEAST三大工具完成微生物组数据清洗的全流程。从环境准备、数据导入到污染物识别、样本间污染校正及溯源分析,提供了一套可复用的污染校正工作流,帮助研究者提升数据质量,确保后续分析的可靠性。

weixin_33462927的博客 317

S/4HANA Private Cloud 与 On-Premise 的 Key User Custom Fields 运输与升级避坑指南

本文探讨了SAP S/4HANA Cloud Private Edition和On-Premise系统中Key User Custom Fields的管理要点。文章指出,Custom Fields涉及元数据生成、对象一致性、传输治理等完整链路,操作不当会导致字段丢失或升级失败。关键建议包括:使用ATO Fiori App管理扩展项与传输绑定,配置正确的job user权限,避免在多系统并行开发同一字段。特别强调升级时需执行CFD_REGENERATE_IN_ONPREMISE报表,并通过标准传输机制推进变更

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 196

自执行函数(Self-Invoking Function)

/ 函数体console.log('这是一个自执行函数');})();在上述代码中,首先使用括号()将匿名函数包裹起来,这是因为 JavaScript 解析器需要明确这里是一个表达式。然后紧跟另一个括号(),这个括号用于调用前面定义的函数。// 函数体console.log('这也是一个自执行函数');}());这种形式同样是将匿名函数用括号包裹,不过调用函数的括号被放在了匿名函数定义括号的内部。此外,除了用括号包裹,还可以使用!!console.log('使用!运算符的自执行函数');}()

Z09111616的博客 697

弥散圆以及最大弥散圆

1弥散圆的形成? 原本景物中的一点应该经过透镜本应该也是一点才对。但是因为离焦,球差的存在,最终成像会投影成一个光斑圆圈。越小越清晰,越大就互相干涉变得越模糊。 同时人们规定二零最大弥散圆,就是人眼能够感受清晰模糊的一个边界,直径大于它,感受到模糊;直径小于它,感受不到模糊。 下面分别是离焦(左),球差(右)。 2弥散圆大小怎么计算呢? ,f为焦距;<1> ,D为光圈有效孔径;<2> F=f/D; <3> 3条公式合并可得出: ...

camerall 3117

JavaScript自执行函数,自执行函数是什么,存在的意义?

JavaScript自执行函数1.自执行函数是什么2.自执行函数存在的意义3.自执行函数的写法3.1自执行函数的第一种写法3.2自执行函数的第二种写法4.自执行函数的传参5.自执行函数的总结 1.自执行函数是什么 自执行函数也叫立执行函数 是将函数的声明和调用合并在一起 2.自执行函数存在的意义 自执行函数是为了封装 不需要将普通的函数特意换成自执行函数的写法 3.自执行函数的写法 3.1自执行函数的第一种写法 3.2自执行函数的第二种写法 4.自执行函数的传参 5.自执行函数的总结 ...

hi 8059

即插即用系列(代码实践)| 2025 Strip R-CNN:大尺寸条形卷积——遥感目标检测新SOTA,专治细长目标(桥梁、船只)

摘要: 论文《Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection》针对遥感图像中细长目标(如桥梁、道路)检测难题,提出创新性解决方案。通过设计StripBlock模块,将传统方形卷积核替换为大尺寸条形卷积(水平1×19与垂直19×1组合),有效捕获长距离空间特征,同时减少背景噪声。结合CenterPooling增强目标中心定位,该模块可即插即用至现有网络,显著提升遥感检测任务(如DOTA数据集)的精度。代码已开源,

分享顶会顶刊论文即插即用模块 189

再相逢【知识图谱】中文医学知识图谱CMeKG,中文产科医学知识图谱COKG | 附:图数据库Neo4j下载安装教学(遇到问题并解决) + Neo4j基本操作

本篇文章介绍知识图谱的相关知识。从便于理解的角度切入,给出知识图谱的形象化定义,并介绍了国内的中文医学知识图谱CMeKG,还以用户视角体验了中文产科医学知识图谱。目录二介绍了如何部署安装Neo4j数据库,并解决了部署过程中遇到的一些基础错误,随后介绍了Neo4j图数据库的基础操作。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 2618

匿名函数与自执行函数

匿名函数与自执行函数 匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出异常。 匿名函数 /** * 定义函数 声明式 * 声明式会导致函数提升,function会被解释器优先编译。即我们用声明式写函数,可以在任何区域声明,不会影响我们调用 */ function...

WindRunnerMax 1889

SAP物料主数据归档详解(物理删除)

顾问们的回答肯定的统一的不能,只能打上删除标记。物料设置好需要删除的物料号这里我们需要删除的物料是AG88,其中,若不选“考虑无删除标记的物料”,需要将需要归档的物料MM06打删除标记。平时在操作系统过程中经常会不小心创建出很多无用的物料主数据,但是系统只能通过MM06打上删除标记,但是物料最终在系统中还是可以查询到的。6、执行已设置变式的归档程序,执行完毕,点下图中的“Job”,每次执行完归档程序会产生两条作业。然后设置好开始的参数和假脱机的参数,三个都是绿灯就可以执行归档的操作,物理上删除物料主数据。

我小时候很黑的博客 5526

JavaScript自执行函数:用途、好处

JavaScript中的自执行函数是一个常见的编程技巧,它可以在特定的场景中发挥重要作用。本文将介绍自执行函数的用途、好处,并提供代码示例进行说明。

TianXuab的博客 1941

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

javascript 自执行函数

一、自执行函数的4种形式 (function (_param){ console.log(_param); })(1) (function (_param){ console.log(_param); }(1)) !function (_param){ console.log(_param); }(1) // !可以改为其他运输符或者void ((_param)=>{ console.log(_param); })(1) 二、需要注意的是,自执行函数只能在自执行时调用,不能在外部被调用 (funct

Novice-XiaoSong的博客 475

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

js匿名函数如何自执行

匿名函数就是没有名字的函数,匿名函数的作用是避免全局变量的污染以及函数名的冲突。匿名函数通常与自执行函数结合使用,因为匿名函数没有函数名,所以无法通过函数名调用,需要通过自执行调用。 在了解匿名函数自执行之前,需要先简单了解一下函数声明和函数表达式的概念。 函数声明 函数声明最重要的一个特征就是函数声明提升,意思是执行代码之前先读取函数声明,并使其在执行任何代码前可用。这意味着可以把函数声明放在调用它的语句之后,同时函数声明必须要有标识符做为函数名称。 fn(1); function fn(x) {

zhouhao620的博客 3233

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

闭包之自执行函数

不知道你对上篇文章的闭包理解多少,其实也不必强求自己一下就是理解了,因为这是中间会有一个思维的转换过程,按照这样的学习思路。今天我们再来看一个经典的闭包案例。         相信使用过Jquery 的同学对自执行函数都不陌生,因为你可能已经大量的使用过了,因为他的好处也是被人说烂的。比如说别人问你为什么要是使用自执行函数,你会不假思索的说可以防止变量污染,按照套路来的话,别人会接着问你为什么,

让我认识代码,让我的代码美化世界 1491

JS自执行函数

自执行函数是什么?自执行函数就是当它被定义出来,就会自动执行的函数。不需要调用,传参也很方便。 (function aaa(a,b){ return sum = a + b ;})(1,2)  通过控制台可以发现sum实现了两个数的相加。   自执行函数有三种写法: ( function ( “ 参数 ” ) { " 函数方法 " ; } ) ( “ 给参数传的值 ” ) ( function ( " 参数 " ) { “ 函数方法 ” ; } ( " 给参数传的值 " )

qq_45954420的博客 6169

自执行函数的理解

今天抽空研究一下jquery的源码,发现jquery的整体框架是从自执行函数开始的。(function(e, t) {})(window),今天就来好好研究下这个自执行函数是怎么回事。 首先区分两个概念,函数声明,函数表达式。 function fn(){};这种是函数声明的最通俗写法,根本的标志是需要有个函数名,函数声明的好处,是可以在函数声明之后,在代码执行的任何位置调用fn();都可以执

chenjinsheng2015的博客 3104

自执行函数和闭包

自执行函数和闭包自执行函数自执行函数的三种写法自执行函数的第一种写法:最前最后加括号自执行函数的第二种写法:function外面加括号自执行函数的第三种写法:在function前面加运算符,常用的是!和void自执行函数的第四种写法:new function访问自执行函数里面的变量闭包 自执行函数 自执行函数的好处:匿名函数自执行里面的所有东西都是一个局部的。防止和其他的代码冲突。 自执行函数的三...

辣辣的草莓酱 1776

JS 自执行函数

  由于自己js基础知识薄弱,很多js的知识还没有掌握,所以接下来会经常写一些关于js基础知识的博客,也算给自己提个醒吧。   js自执行函数,听到这个名字,首先会联想到函数。接下来,我来定义一个函数: function aaa(a,b){ return sum = a + b }   定义了一个名为aaa的函数,在里面可以计算两个数的和。如果想执行它,就必须得...

weixin_30709061的博客 108

JS中的自执行函数

啥是自执行函数,有的说是立即执行,有的说是自动执行,不管到底是啥,我们只要自己理解这个自执行就好。 一般定义函数的方式 function fn1() { console.log('我是函数1') } fn1() // 我是函数1 var fn2 = function() { console.log('我是函数2') } fn2() // 我是函数2 自执行函数有三种写法   ( function ( “ 参数 ” ) { " 函数方法 " ; } ) (...

cai_niao5623的博客 1843

Javascript什么是自执行函数

自执行函数 =定义 + 调用合二为一,常用于:启动入口(像 Java 的 main)隔离作用域(变量不污染全局)快速执行一段逻辑要不要我带你写一个「使用自执行函数做入口的 JS 小工具」来实战下?例如:打印时间、执行一次计算、发个 HTTP 请求等?

Theoweb3|优快云 wwh1st|GitHub theoweb3|TG theo_liu|X theoweb33|gmail wwh9th 华语区Web3基础设施建设者;Web3开源社区共建者;博客沉淀去中心化等各类工程经验。 541

小白秒懂js闭包和自执行函数

之前我一直没有搞懂闭包,闭包和自执行函数到底是什么关系 为了弄懂也查阅了很多文档 不过发现现有的文档很多讲的太繁琐,或者说不能很好的解决我的疑惑 相信有很多小伙伴跟我一样有这样的困惑 什么是闭包? 闭包有什么优缺点?自执行函数又和闭包有什么关系? 下面我就用我的理解、例子来为大家答疑解惑 (如果有哪些地方理解有错,希望大家能给我指出来,共勉) 1.什么是闭包? 我所理解的闭包: 函数嵌套函数...

alokka的博客 1654
上一篇: network中的请求信息,headers中的每一项分别是什么意义?
下一篇: 如何理解JS中的call和apply?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值