JavaScript立即执行函数的三种不同写法

当我们想要立即调用一个函数时,就需要用到JavaScript立即执行函数。立即执行函数是一个函数执行完毕后立即被调用执行,而不是等到再次调用。它常用于模块化开发,而这个函数中的变量不会污染全局变量。

下面来讲解三种不同写法:

写法一:使用圆括号把函数括起来

(function() {
  // 函数体
})();

这是最常见的一种写法,把函数用圆括号括起来,这个圆括号是把函数表达式变成了函数调用表达式,然后再使用另外一个圆括号把整个表达式括起来进行调用。

这种写法也是非常常用的模式,圆括号会让浏览器把表达式解析完毕之后再去执行。这样会避免一些因误解产生的错误。

示例:

(function () {
  var name = "Jack";
  console.log(name); // "Jack"
})();
console.log(name); // ReferenceError: name is not defined

在上面的例子中,我们创建了一个立即执行函数并给它命名,然后立即调用它。该函数中的变量name只能在该函数中使用,不能在外部访问。

写法二:使用函数表达式

函数表达式的写法与写法一很相似,只是不加圆括号直接使用函数表达式代替函数进行调用。

let func = function() {
  // 函数体
}();

示例:

let func = function () {
  var name = "Jack";
  console.log(name);
}();
console.log(name); // ReferenceError: name is not defined

可以看到,这两种写法实现效果一样,只是使用方式不同,可以按个人喜好进行选择。

写法三:使用自执行函数

使用自执行函数需要首先定义一个匿名函数,然后在声明后面紧跟两个圆括号(),最后加上一个括号把整个表达式括起来调用。

!function(){
  // 函数体
}();

示例:

!function () {
  var name = "Jack";
  console.log(name);
}();
console.log(name); // ReferenceError: name is not defined

在上面的代码中,我们使用了一个自执行函数,这个函数中的变量name只能在该函数中使用,外部不能访问。自执行函数的这种写法常用于前端开发中的代码压缩与混淆。

综上所述,以上三种立即执行函数的写法都是可以实现同样的效果,写法一和写法二较为常用,而写法三适用于一些特殊场景。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript立即执行函数的三种不同写法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 定时器(setTimeout/setInterval)调用带参函数失效解决方法

    当我们在使用JavaScript中的定时器(setTimeout/setInterval)调用带参的函数时,有时候就会遇到传递参数失败或丢失的问题。本篇攻略将会详细介绍这个问题的解决方法。 问题描述 在使用定时器调用带参函数时,经常会遇到该函数中的参数传递失败的情况。比如,下面的代码: setTimeout(myFunc(param1), 1000); 在1…

    JavaScript 2023年6月11日
    00
  • 深入理解JavaScript高级之词法作用域和作用域链

    深入理解JavaScript高级之词法作用域和作用域链 什么是词法作用域 词法作用域是指JavaScript代码的作用域是基于源代码中变量和函数声明的位置来确定的,而不是基于运行时的调用栈。换言之,词法作用域与代码的声明位置有关。 例如,下面的代码示例中,bar函数在foo函数内部定义,因此它的作用域(也称为“词法环境”)包含了foo函数范围内的变量,即x变…

    JavaScript 2023年5月27日
    00
  • 什么是JavaScript注入攻击?

    JavaScript注入攻击是指攻击者通过篡改网页中的JavaScript代码,向网站注入恶意的JavaScript语句,从而实现对网站的攻击行为。此种攻击手段常被黑客用于窃取、篡改或者删除网站中的个人信息、交易记录等敏感信息。 攻击者通过JavaScript注入攻击,可以在用户访问受攻击网站时,进行一下常见的攻击行为: 劫持网站表单:攻击者通过JavaSc…

    JavaScript 2023年5月19日
    00
  • 一个简单的js动画效果代码

    下面我来详细讲解如何编写一个简单的js动画效果代码。 准备工作 在编写动画代码前,需要准备好HTML文件和CSS文件。 HTML文件 假设需要给一个按钮添加动画效果,我们可以在HTML文件中添加一个按钮元素,如: <button id="btn">按钮</button> CSS文件 我们要将按钮的样式设为相对定位(…

    JavaScript 2023年6月10日
    00
  • Javascript Validation for email(正则表达式) 英文翻译

    以下是关于Javascript Email验证的完整攻略: 什么是Javascript Email验证? Javascript是一种流行的动态编程语言,常用于网站开发和交互设计。在网站中,用户通常需要在表单中填写自己的信息,其中之一就是邮箱。为了验证用户填写的邮箱是否符合规范,网站开发者会使用Javascript编写代码来验证用户的输入是否符合邮箱的正则表达…

    JavaScript 2023年5月19日
    00
  • js时间控件只显示年月

    针对这个问题,以下是我给出的完整攻略。 1. 使用现成的时间控件库 使用现成的时间控件库是最为简单的方法之一,常用的时间控件库有datepicker.js和laydate.js。 下面是 laydate.js 的简单例子,使用时只需要引入laydate.js和laydate.css即可。 <!DOCTYPE html> <html> …

    JavaScript 2023年5月27日
    00
  • JavaScript数组函数unshift、shift、pop、push使用实例

    JavaScript数组函数unshift、shift、pop、push使用实例 在JavaScript中,数组是一种非常重要的数据结构。在进行数组处理时,通常需要使用四个重要的数组函数unshift、shift、pop、push。本文将会对它们进行详细讲解,并提供示例来帮助您了解它们的使用。 unshift()函数 unshift()函数可以向数组的开头添…

    JavaScript 2023年5月27日
    00
  • javascript实现图片轮换动作方法

    为实现图片轮换动作,有多种方式可以使用。其中最常用的方式是利用JavaScript语言,通过改变DOM元素上的CSS样式属性值来实现图片的轮换。 以下是基于JavaScript实现图片轮换动作的步骤: 步骤一:创建HTML结构 首先,我们需要在HTML页面中创建一个包含图片和按钮的基本结构。 HTML结构中包含以下元素: 外容器:使用div元素作为外层容器,…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部