首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 立即执行函数

立即执行函数 目录 立即执行函数 作用 参数 返回值 立即执行函数 立即执行函数模式是一种语法,可以让你的函数在定义后立即执行。...立即执行函数的组成 定义一个函数 将整个函数包裹在一对括号中 将函数声明转换为表达式 在结尾加上一对括号 让函数立即执行 代码实例 (function () { console.log("...+ who) })("kangkang") 代码实例2 (function (global) { console.log(global) })(this) 通常,全局变量被作为一个参数传递给立即执行参数...注意 通常你不应该给立即执行函数传递太多的参数,因为它很快会成为一个负担——为了理解代码是如何工作的,你不得不经常上下滚动源代码。...返回值 就像其它任何函数一样,一个立即执行函数也能返回值并且可以赋值给其它变量。 var num = (function () { return 4 })() console.log(num)

6.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入理解立即执行函数

    前言 立即执行函数常用于第三方库,它可以用来隔离变量作用域,很多第三方库都会存在大量的变量和函数,在ES5环境下为了避免变量污染,开发者想到的解决办法就是使用立即执行函数。...本文就跟大家分享下立即执行函数的相关知识点,欢迎各位感兴趣的开发者阅读本文。...,当你的代码在不支持ES6+的浏览器上运行时,你不得不求助立即执行函数来模拟。...上述两种写法是等价的,要想立即执行函数做到立即执行,要注意两点: 函数体后面要有小括号 函数体必须是函数表达式而不能是函数声明 函数的声明方式 在讲它们两者之间的区别之前,我们先来了解下js函数的两种声明方式...")); 讲解到此处时,我们会发现,上述代码的写法正好是立即执行函数的第二种写法,我们知道函数体后面跟着小括号,这个函数就会立即执行

    1.3K30

    你真的知道『立即执行函数』吗?

    立即执行函数,经常使用,但是你确定了解它嘛? 下面,就来看看吧! 1、定义 立即执行函数,又称IIFE....'); }() 报错:Uncaught SyntaxError: Unexpected token ')' 原因:立即执行函数 ,是执行函数表达式,而不是函数声明式 4、函数表达式 当一个函数需要立即执行的情况...,平时我们没有加分号,js会自动为我们加上分号 如:console.log('hahha') js 解析成 console.log('hahha'); 而括号太多时,js不能正确识别,所以,就要我们自己加分号...且函数名不能在外部使用 8、立即执行函数的好处 1、可以创建一个与外界没有任何关联的作用域,独立作用域 2、执行完成后,自动销毁 3、ES3 ES5 立场上是没有模块的模仿,可用立即执行函数来模拟模块化...今天的分享就到这,还有关于立即执行函数的其它问题,欢迎提问

    60620

    JS设置定时器_js设置定时器

    JS定时器的一些特性和如何避免重复设置定时器 概述和总结 每个JS定时器产生时会被系统分配一个id,这个id是正整数,而且一个页面里面的定时器id不重复,我们能用一个变量接收这个id,但是如果重复执行一条接收创建语句...,那么你只能接收到最新创建的定时器的id,之前创建的定时器的id会被覆盖,但是定时器数量在增加,这就会导致界面一些功能错乱,解决方法就是在重复按开始按钮时,如果已经有了一个定时器那么就不执行语句,我列出了错误代码和三种解决方法...的循环定时器,每100ms执行一次,第一个参数是被执行函数,第二个是时间间隔 问题也就出在这里,我每次点击START按钮,都会创建一个计时器,但是只有最新的计时器会被赋值给b,然后就导致STOP按钮只能中断最新的定时器...,之前的定时器我就找不到了,但它们还在运作,就会导致点击开始次数越多,灯泡闪烁间隔越小,STOP也无法阻止,这里首先我想到的改进方法就是,在按Start时先判断一下b是否为空,如果为空,那么就执行灯泡闪烁的函数...,如果不为空那么就不执行,但是我错误理解了定时器的机制,定时器给b的其实是一个整数编号,然后清除定时器之后,定时器本身编号变成null */ b =setInterval(off_open,100);

    29.9K30

    前端面试之立即执行函数

    什么是立即执行函数 声明一个函数,并马上调用这个匿名函数就叫做立即执行函数。在定义好一个函数后,直接执行。...立即执行函数的写法 有时候,我们定义函数以后,立即调用该函数,这时不能在函数的定义后面直接加圆括号,这会产生语法错误。...解决方法: 1、使用立即执行函数,给每个li创建一个独立的作用域,在立即执行函数执行的时候,i的值从0到2,对应三个立即执行函数,所以就能正常输出了。...立即执行函数的参数 (function(i) { ... })(j) 如果立即执行函数中需要全局变量,全局变量会被作为一个参数传递给立即执行函数。j代表是实参,i代表的是执行函数的形参。...立即执行函数的作用 1、改变变量的作用域(创建一个独立的作用域)。 2、封装临时变量。

    1.7K10

    JavaScript立即执行函数(IIFE)的使用

    js立即执行函数(IIFE)有两种写法,分别为:(function ( ){})( ) 与 (function ( ){}( )) ,这两种写法基本上是没有区别的。 那么为什么要 IIFE?...let foo = "bar"; console.log(foo); } foo; // ReferenceError: foo is not defined 但是,块范围变量不能替代立即调用的函数表达式...通过这种方式,即使函数在IIFE的词法范围外执行,也会创建一个闭包,使函数能够访问局部变量。...捕获全局对象 JavaScript代码在不同环境执行时,你所使用的全局对象是不同的。当代码在浏览器运行时,全局对象是windows。但是在Node.js中,全局对象是global。...你肯定不想硬编码这两个名字其中的任何一个,这时你就可以使用一种”包装”的方式就像下面这样: (function(global) { // ... })(this); 不管是浏览器还是Node.js

    2.3K20

    立即执行函数表达式(IIFE)

    立即执行函数表达式(IIFE) 幸运的是,固定的语法错误很简单。最普遍接受的方式告诉解析器这是一个被括号包裹的函数表达式。...这一括号通常意味着函数表达式会被立即执行,变量将包含函数的结果而不是函数本身。这也会解决一些麻烦,否则如果你写了一个很长的函数表达式,别人必须拉到最底部查看该函数有没有被立即执行。...立即执行函数表达式最好的一方面就是,因为这个匿名函数表达式被立即执行,没有标识符,所以闭包的使用不会污染当前作用域。 “自执行匿名函数”有错误吗?...“立即执行函数表达式”是什么?它是一个被立即执行的函数表达式,就像这个名称会让你相信一样。 我希望看到 JavaScript 社区成员在他们的文章和报告中采用“立即执行函数表达式”这个术语。...var foo = function() { foo(); }; // 有些人把这个称为 "自执行匿名函数" ,其实它并 // 不是自执行, 因为它没有调用自身。它只是 // 立即调用。

    91550

    JavaScript之闭包问题以及立即执行函数

    https://blog.csdn.net/sinat_35512245/article/details/53514804 今天我将会来浅谈一下关于JavaScript的立即执行函数以及闭包问题...首先我们先要了解一下关于立即执行函数: ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数...,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此。...要理解立即执行函数,需要先理解一些函数的基本概念。...,而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式; 二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用 。

    93720
    领券