js自执行函数的几种不同写法的比较

让我们来详细讲解一下“js自执行函数的几种不同写法的比较”。

什么是自执行函数?

自执行函数,也被称为立即执行函数,是指在定义函数后立即调用该函数的一种方式,通常被用来封装一些特定的操作,避免变量污染全局作用域。

自执行函数的几种不同写法

写法一:使用小括号将函数包裹起来

(function () {
  // code goes here
})();

// 或者写成
(function () {
  // code goes here
}());

使用小括号将函数包裹起来是一种常见的自执行函数写法。这种写法不会产生任何错误,在代码压缩的时候也能有效地减少代码体积。

写法二:使用逻辑非

!function () {
  // code goes here
}();

// 或者写成
true && function () {
  // code goes here
}();

使用逻辑非也是一种常见的自执行函数写法。这种写法不会产生任何错误,在代码压缩的时候也能有效地减少代码体积。

写法三:使用void运算符

void function () {
  // code goes here
}();

// 或者写成
void function () {
  // code goes here
}();

使用void运算符也是一种常见的自执行函数写法。这种写法相比于前两种写法,会稍微增加一些代码体积,但是依然能够很好地达到效果。

自执行函数的注意事项

  • 自执行函数中的变量仅在自执行函数内部可见,不会污染全局作用域。
  • 自执行函数的返回值可以被外部调用所使用。
  • 自执行函数只需要被定义和执行一次,后续不会被再次使用。

示例说明

示例一:使用小括号的自执行函数

(function () {
  var name = 'John';

  (function () {
    var name = 'Mary';
    console.log('Inside inner function:', name);
  })();

  console.log('Inside outer function:', name);
})();

console.log('Outside both functions:', name);

在该示例中,我们使用了小括号的自执行函数来封装了两个函数。在内部函数中,我们定义了一个叫做name的变量,并将其赋值为Mary,然后将其输出。在外部函数中,我们同样定义了一个叫做name的变量,并将其赋值为John,然后将其输出。在函数外部输出name变量时,会发现变量name在外部是无法访问到的。

示例二:使用逻辑非的自执行函数

!function () {
  var count = 0;

  var intervalId = setInterval(function () {
    count++;
    console.log('Count:', count);

    if (count === 5) {
      clearInterval(intervalId);
    }
  }, 1000);
}();

在该示例中,我们使用了逻辑非的自执行函数来实现一个计数器。在函数内部,我们使用了setInterval函数来定时输出计数器的值,并在计数器到达5的时候停止输出。在函数外部没有定义任何变量,也不需要访问到计数器的值,因此使用逻辑非的自执行函数可以很好地满足我们的需求。

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

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

相关文章

  • javascript 按回车键相应按钮提交事件

    要使得在输入框中按下回车键能够提交表单,可以分为以下几个步骤: 找到输入框的 DOM 元素。 给输入框添加 onkeydown 事件监听器。 在事件监听器中判断按下的是否为回车键。 如果是回车键,则阻止默认行为(即防止换行),并执行相应的提交表单操作。 下面按照具体的方法和示例一步步进行讲解。 1. 找到输入框的 DOM 元素 首先,需要找到要对其添加事件监…

    JavaScript 2023年6月10日
    00
  • JavaScript中? ?、??=、?.和 ||的区别浅析

    JavaScript中 ? ?、??=、?.和 ||的区别浅析 在JavaScript中,存在 ? ?、??=、?.和 ||四种运算符,他们都有着不同的用途。本文将会对这些运算符的使用场景进行详细的说明并配有示例。 1. ? ?运算符 ? ?运算符称为Nullish coalescing operator,它的作用是当左侧操作数为 undefined 或 n…

    JavaScript 2023年5月18日
    00
  • 网站生成静态页面攻略3:防采集策略

    下面我将详细讲解“网站生成静态页面攻略3:防采集策略”的完整攻略。 简介 在互联网时代,网站安全问题越来越受到重视。作为网站开发者,我们需要考虑如何保护网站的信息,防范一些不法分子利用各种手段对网站进行采集。本文主要介绍一些防采集策略,以帮助开发者更好地保护网站隐私。 1. User-Agent 策略 User-Agent 是一种用户代理信息,用于标识用户所…

    JavaScript 2023年5月28日
    00
  • 浅谈TypeScript3.7中值得注意的3个新特性

    首先,让我们先简单介绍一下TypeScript。TypeScript是微软开发的一种超集编程语言,它是JavaScript的扩展,可以增加静态类型、接口、类、命名空间等特性,将JavaScript打造成强类型的脚本语言。 TypeScript3.7是最新的版本,其中有三个新特性值得我们关注。 1.声明只读数组和元组 在TypeScript 3.7中,我们可以…

    JavaScript 2023年5月27日
    00
  • JS.findElementById()使用介绍

    JS.findElementById()使用介绍 在JavaScript中,document.getElementById()方法允许您通过DOM(Document Object Model)获取HTML元素。该方法将返回具有指定ID的元素。 语法 以下是 document.getElementById() 的语法: document.getElementB…

    JavaScript 2023年6月10日
    00
  • Java中的Unsafe在安全领域的使用总结和复现(实例详解)

    下面是详细的解答。 Java中的Unsafe在安全领域的使用总结和复现(实例详解) 什么是Unsafe Unsafe是Java中提供的一个类,它提供了直接操作其内存的方法。虽然该类被标记为不稳定的,但是Unsafe在Java中广泛使用,特别是在JDK内部(例如Java Collections、Java Concurrent包)中。 在安全领域中的使用总结 U…

    JavaScript 2023年6月10日
    00
  • vue router总结 $router和$route及router与 router与route区别

    下面来详细讲解一下 “vue router 总结 $router和$route及router与 router与route区别” 1. 什么是vue-router? Vue Router 是 Vue.js 官方的路由管理器。它与 Vue.js 核心深度集成,我们可以用 Vue.js 生成的组件结构快速构建 SPA,并且非常方便地管理应用程序的路由。Vue Ro…

    JavaScript 2023年6月11日
    00
  • 实例:用 JavaScript 来操作字符串(一些字符串函数)

    实例:用 JavaScript 来操作字符串(一些字符串函数) 字符串是我们在编程中非常常用的数据类型,JavaScript提供了很多各种各样的字符串操作函数,我们可以通过阅读文档、书籍等方式学习这些函数。本篇攻略将会介绍一些常用的字符串函数并提供一些简单的示例代码,以便初学者快速掌握字符串函数的使用方法。 字符串截取函数 (substring) subst…

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