什么是JavaScript中的IIFE(Immediately Invoked Function Expression)?它的作用是什么?

2023-09-22 11:12:19


⭐ 专栏简介

前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个专栏中,我们将以问答形式每天更新,为大家呈现精选的前端知识点和常见问题解答。通过问答形式,我们希望能够更直接地回应读者们对于前端技术方面的疑问,并且帮助大家逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是各种常用框架和工具,我们将深入浅出地解释概念,并提供实际案例和练习来巩固所学内容。同时,我们也会分享一些实用技巧和最佳实践,帮助你更好地理解并运用前端开发中的各种技术。

在这里插入图片描述

不仅如此,我们还会定期推出一些项目实战教程,让你能够将所学知识应用到实际开发中。通过实际项目的练习,你将能够更好地理解前端开发的工作流程和方法论,并培养自己解决问题和独立开发的能力。我们相信,只有不断积累和实践,才能真正掌握前端开发技术。因此,请准备好迎接挑战,勇敢地踏上这段前端入门之旅!无论你是寻找职业转型、提升技能还是满足个人兴趣,我们都将全力以赴,为你提供最优质的学习资源和支持。让我们一起探索Web开发的奇妙世界吧!加入前端入门之旅,成为一名出色的前端开发者! 让我们启航前端之旅,下面图片中介绍的是博主除了本专栏外正在输出的其他专栏;(跳过下方的图片咱们开始今天的正文!!!)

在这里插入图片描述


⭐ JavaScript中的IIFE

IIFE,全称为Immediately Invoked Function Expression,是JavaScript中的一种常见的函数表达式,其特点是定义后立即执行。这种模式的主要目的是创建一个独立的作用域,防止变量污染全局作用域,并且可以用于封装一段代码块。

IIFE的一般语法形式如下:

(function() {
    // 在这里编写代码
})();

IFE的作用包括

  1. 创建独立的作用域:IIFE内部的变量和函数在IIFE外部不可访问,这可以有效地防止变量泄漏到全局作用域,避免命名冲突。

  2. 封装代码块:可以将一段代码封装在IIFE中,使其成为一个单独的模块,这在模块化编程中很有用。

  3. 私有变量和函数:IIFE内部定义的变量和函数可以被外部代码访问,但对外部是不可见的,从而实现了私有性。

  4. 参数传递:可以向IIFE传递参数,这些参数在IIFE内部可以被当做参数使用。


⭐ 示例

// 示例1:基本形式的IIFE
(function() {
    var message = "Hello, IIFE!";
    console.log(message);
})();

// 示例2:传递参数的IIFE
(function(name) {
    console.log("Hello, " + name + "!");
})("John");

// 示例3:使用IIFE创建模块
var myModule = (function() {
    var privateVar = 42;

    function privateFunction() {
        // 私有函数
    }

    return {
        getVar: function() {
            return privateVar;
        }
    };
})();

console.log(myModule.getVar()); // 输出:42

需要注意的是,IIFE的主要目的是创建一个独立的作用域,可以用于隔离变量和函数,提供私有性,但并不是一种必需的编程模式。在现代JavaScript开发中,使用模块化系统(如ES6模块)通常更加推荐,因为它们提供了更强大的模块封装和管理功能。


⭐ 写在最后

本专栏适用读者比较广泛,适用于前端初学者;或者没有学过前端对前端有兴趣的伙伴,亦或者是后端同学想在面试过程中能够更好的展示自己拓展一些前端小知识点,所以如果你具备了前端的基础跟着本专栏学习,也是可以很大程度帮助你查漏补缺,由于博主本人是自己再做内容输出,如果文中出现有瑕疵的地方各位可以通过主页的左侧联系我,我们一起进步,与此同时也推荐大家几份专栏,有兴趣的伙伴可以订阅一下:除了下方的专栏外大家也可以到我的主页能看到其他的专栏;

前端小游戏(免费)这份专栏将带你进入一个充满创意和乐趣的世界,通过利用HTML、CSS和JavaScript的基础知识,我们将一起搭建各种有趣的页面小游戏。无论你是初学者还是有一些前端开发经验,这个专栏都适合你。我们会从最基础的知识开始,循序渐进地引导你掌握构建页面游戏所需的技能。通过实际案例和练习,你将学会如何运用HTML来构建页面结构,使用CSS来美化游戏界面,并利用JavaScript为游戏添加交互和动态效果。在这个专栏中,我们将涵盖各种类型的小游戏,包括迷宫游戏、打砖块、贪吃蛇、扫雷、计算器、飞机大战、井字游戏、拼图、迷宫等等。每个项目都会以简洁明了的步骤指导你完成搭建过程,并提供详细解释和代码示例。同时,我们也会分享一些优化技巧和最佳实践,帮助你提升页面性能和用户体验。无论你是想寻找一个有趣的项目来锻炼自己的前端技能,还是对页面游戏开发感兴趣,前端小游戏专栏都会成为你的最佳选择。点击订阅前端小游戏专栏

在这里插入图片描述

Vue3通透教程【从零到一】(付费) 欢迎来到Vue3通透教程!这个专栏旨在为大家提供全面的Vue3相关技术知识。如果你有一些Vue2经验,这个专栏都能帮助你掌握Vue3的核心概念和使用方法。我们将从零开始,循序渐进地引导你构建一个完整的Vue应用程序。通过实际案例和练习,你将学会如何使用Vue3的模板语法、组件化开发、状态管理、路由等功能。我们还会介绍一些高级特性,如Composition API和Teleport等,帮助你更好地理解和应用Vue3的新特性。在这个专栏中,我们将以简洁明了的步骤指导你完成每个项目,并提供详细解释和示例代码。同时,我们也会分享一些Vue3开发中常见的问题和解决方案,帮助你克服困难并提升开发效率。无论你是想深入学习Vue3或者需要一个全面的指南来构建前端项目,Vue3通透教程专栏都会成为你不可或缺的资源。点击订阅Vue3通透教程【从零到一】专栏

在这里插入图片描述

TypeScript入门指南(免费) 是一个旨在帮助大家快速入门并掌握TypeScript相关技术的专栏。通过简洁明了的语言和丰富的示例代码,我们将深入讲解TypeScript的基本概念、语法和特性。无论您是初学者还是有一定经验的开发者,都能在这里找到适合自己的学习路径。从类型注解、接口、类等核心特性到模块化开发、工具配置以及与常见前端框架的集成,我们将全面覆盖各个方面。通过阅读本专栏,您将能够提升JavaScript代码的可靠性和可维护性,并为自己的项目提供更好的代码质量和开发效率。让我们一起踏上这个精彩而富有挑战性的TypeScript之旅吧!点击订阅TypeScript入门指南专栏

在这里插入图片描述

更多推荐

【TCP】滑动窗口、流量控制 以及拥塞控制

滑动窗口、流量控制以及拥塞控制1.滑动窗口(效率机制)2.流量控制(安全机制)3.拥塞控制(安全机制)1.滑动窗口(效率机制)TCP使用确认应答策略,对每一个发送的数据段,都要给一个ACK确认应答。收到ACK后再发送下一个数据段。这样做有一个比较大的缺点,就是性能较差。尤其是数据往返的时间较长的时候。既然这样一发一收的

大厂超全安全测试--关于安全测试的分类及如何测试

安全测试(总结)1.jsonNP劫持(其实json劫持和jsonNP劫持属于CSRF跨站请求伪造)的攻击范畴,解决方法和CSRF一样定义:构造带有jsonp接口的恶意页面发给用户点击,从而将用户的敏感信息通过jsonp接口传输到攻击者服务器json语法规则:数据在名称/值对中、数据由逗号分隔、花括号保存对象、方括号保存

循环神经网络——中篇【深度学习】【PyTorch】【d2l】

文章目录6、循环神经网络6.4、循环神经网络(`RNN`)6.4.1、理论部分6.4.2、代码实现6.5、长短期记忆网络(`LSTM`)6.5.1、理论部分6.5.2、代码实现6.6、门控循环单元(`GRU`)6.6.1、理论部分6.6.2、代码实现6、循环神经网络6.4、循环神经网络(RNN)6.4.1、理论部分原理

18.3 【Linux】登录文件的轮替(logrotate)

18.3.1logrotate的配置文件logrotate主要是针对登录文件来进行轮替的动作,他必须要记载“在什么状态下才将登录文件进行轮替”的设置。logrotate这个程序的参数配置文件在:/etc/logrotate.conf/etc/logrotate.d/logrotate.conf才是主要的参数文件,至于l

Android官方推荐 无需向应用授予的照片选择器工具

官网链接Photopicker|AndroidDevelopers不能跳转链接看这Photopicker照片选择器对话框会显示在您的设备上的媒体文件中。选择一张照片与应用程序分享。图1.照片选择器提供了一个直观的用户界面,用于与您的应用程序分享照片。照片选择器提供了一个可浏览、可搜索的界面,向用户呈现了他们的媒体库,按

个人电脑(windows、mac)安装Docker Desktop

目录什么是Docker?DockerDesktop在个人电脑上的作用安装DockerDesktop在学习大数据、人工智能等技术时,常常需要安装相应软件来支持我们的学习和实践。然而,很多这样的软件更适合在Linux环境下进行部署和运行。通过在个人电脑安装DockerDesktop可以解决该类问题,在个人电脑上轻松地搭建软

[hive]搭建hive3.1.2hiveserver2高可用可hive metastore高可用

参考:Apachehive3.1.2从单机到高可用部署HiveServer2高可用Metastore高可用hiveonsparkhiveserver2webUI高可用集群启动脚本_薛定谔的猫不吃猫粮的博客-CSDN博客没用里头的hiveonspark,测试后发现版本冲突一、Hive集群规划(蓝色部分)ck1ck2ck3

SpringCloud OpenFeign--声明式WebService 客户端

😀前言本篇博文是关于SpringCloudOpenFeign的基本介绍,希望你能够喜欢🏠个人主页:晨犀主页🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰如果文章有什么需要改进的地方还请大佬不吝

2023华为OD统一考试(B卷)题库清单(按算法分类),如果你时间紧迫,就按这个刷

目录专栏导读华为OD机试算法题太多了,知识点繁杂,如何刷题更有效率呢?一、逻辑分析二、数据结构1、线性表①数组②双指针2、map与list3、优先队列4、滑动窗口5、二叉树6、并查集7、栈三、算法1、基础算法①贪心算法②二分查找③分治递归④搜索算法⑤排序算法2、字符串①KMP②字符串处理③正则表达式3、深度优先搜索①广

携手共赴数智未来|维视智造出席2023英特尔工业物联网大会

​​9月20日,“数智芯生力”2023英特尔工业物联网大会”于上海隆重举办。作为主办方,英特尔邀请了赋能工业数字化技术创新的多位合作伙伴,展示当前中国工业物联网领域的优秀技术与成果,共聚一堂积极探讨数字化机器视觉、控制机器人等领域的热点话题。在工业数字化转型和“双碳”目标驱动下,制造业众多领域正在以前所未有的速度步入工

大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统

国际化、全球化集团,业务遍布全世界,下属公司众多,集团对管理方式和企业文化塑造有着很高的要求。不少大型集团以数字化方式助力全球统一办公,深化企业统一管理。面对大型集团全球化的管理诉求,数字化办公系统作为集团日常使用的平台,自然需要适应企业管理升级,灵活适应国际化带来的管理发展变化和满足全球协同办公需求。最重要的是实现信

热文推荐