js的立即执行函数】的更多相关文章

JS 的立即执行函数 本文写于 2019 年 12 月 7 日 其实 ES6 之后有了之后,很多之前的用法都没必要了,立即执行函数就是其一. 今天看到一道面试题: 请「用自己的语言」简述 立即执行函数是什么 立即执行函数有什么用途 我愣了一下,突然发现自己不是很能清晰的解答这个概念. 我只知道()代表了两种作用: 包裹 执行函数 立即执行函数该怎么描述呢? 声明一个匿名函数,然后马上调用这个匿名函数,就是立即执行函数? 的确,这就是一个典型的立即执行函数. 首先声明一个匿名函数: functio…
先看看最常见的一个问题: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload = function() { var a = document.getElementsByTagName('li'); for(v…
1.匿名函数不能单独定义,必须进行赋值操作或者立即执行,否则会被JS引擎定义为语法错误 function(){alert(dada);} VM229:1 Uncaught SyntaxError: Unexpected token 2.在函数体后面加括号就能立即调用,这个函数形式必须是函数表达式,不能是函数声明 function(){alert(123);}(); VM265:1 Uncaught SyntaxError: Unexpected token ( 3.可以在函数前面加符号,或者用括…
在理解了一些函数基本概念后,回头看看( function(){…} )()和( function (){…} () )这两种立即执行函数的写法,最初我以为是一个括号包裹匿名函数, 并后面加个括号立即调用函数,当时不知道为什么要加括号,后来明白,要在函数体后面加括号就能立即调用,则这个函数必须是函数表达式,不能是函数声明. (function(a){ console.log(a); //firebug输出123,使用()运算符 })(123); (function(a){ console.log(…
匿名自执行函数:没有方法名的函数闭包:闭包是指有权访问另一个函数作用域变量的函数: 通过一个实例来解释: 从网上找到了一个案例,使用了for循环.匿名自执行函数.setTimeout. 案例1: var value1 =0,value2=0,value3=0; for(var i =1;i<=2;i++){ var i2 = i; console.log('i2==>',i2); (function(){ var i3 = i; console.log('i3==>',i3); setT…
立即执行函数:常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),一般想到的方法就是使用立即执行函数.jQuery就是使用的立即执行函数. 函数有三种:函数声明 函数表达式 匿名函数 立即执行函数常见形式: (function(i){ console.log(i) }(1)) (function(i){ console.log(i); })(2) //2 (function fn(i){      console.log(i) }(1)) …
在最近的项目中,需要做到一个时间,就是用户离开页面的时候,我需要缓存页面其中一部分的内容,但是我不需要用户刷新的时候也缓存,我只希望在我用户离开的时候 执行这个函数.百度之,有onbeforeunload与onunload这两个事件,但是onbeforeunload在用户刷新的时候也会执行.搞得我弄的挺久的,所以想在这里做一个小小的总结 onbeforeunload与onunload事件 onbeforeunload定义和用法 onbeforeunload 事件在即将离开当前页面(刷新或关闭)时…
方式一,调用函数,得到返回值.强制函数直接量执行再返回一个引用,引用在去调用执行方式二,调用函数,得到返回值.强制运算符使函数调用执行(function(){})(); 是 把函数当作表达式解析,然后执行解析后的函数相当于 var a = function(){}; a(); a得到的是函数(function(){}()); 是把函数表达式和执行当作语句直接执行.相当于 var a = function(){}(); a得到的是结果最终结果是一样的.()只是起了 自执行的作用和 () 一样的还有…
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <style type="text/css"&g…
//自执行写法1 (function T(){ alert(1) })() //自执行写法2 var T1=function(){ alert(1) }(); //传值 var para1={a:1;b:2,c:'Ok'} var T1=function(obj){ alert(obj.a) }(para1);   //如果不用自执行方式,就得调用 function T(){ alert(1) } T();//调用 ...手写的,....   http://www.php.cn/js-tutor…
js中立即执行函数的应用:应用到事件绑定上. 少说多做,直接运行代码(代码中有注释): <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>js立即执行函…
一般常见的立刻执行函数推荐如下两种: (function(a){ console.log(a); })("kk"); (function(a){ console.log(a) }("kk")); 一些其他的写法,如: !function (a) { console.log(a); }("k"); +function (a) { console.log(a); }("k"); -function (a) { console.lo…
要知道这几种写法之间的区别,我们要先聊些题外话——js中函数的两种命名方式,即表达式和声明式. 函数的声明式写法为:function foo(){/*...*/},这种写法会导致函数提升,所有function关键字都会被解释器优先编译,不管是声明在什么位置,都可以调用它,但是它本身不会被执行,定义只是让解释器知道其存在,只有在被调用的时候才会执行. 图1 声明式函数 函数的表达式写法为:var foo=function(){/*...*/},这种写法不会导致函数提升,于是就必须先声明,再调用,否…
一.JS立即执行函数的写法 方式1.最前最后加括号 (function(){alert(1);}()); 方式2.function外面加括号   (function(){alert(1);})(); 方式3.function前面加运算符,常见的是!与void   !function(){alert(1);}(); void function(){alert(2);}(); 二.立即执行函数的参数 可以给立即执行函数传递参数,例如   (function(who, when) {     cons…
JS匿名函数自执行函数:(function(){})();(function(){}) 这是一个函数,函数后面接(),则是调用函数 比如(function(arg){console.log(arg);})(4);   则输出4 好处:放在里面,不会污染外面的变量,也保护了自己,外面调用不了里面的函数和变量.在js中写大量代码,可以防止变量冲突和错误调用. 插件常用的是( function ($ ) {// 插件代码} ) (jQuery ) ; 这样的好处是可以在函数内自由使用$,不用担心跟别的…
本来规划的是2013年,狠狠的将JS学习下,谁知计划赶不上变化,计划泡汤了.13年的我对JS来说可以说是属于跟风,对它的理解和认识也仅仅是皮毛而已,也是因为要完成<ArcGIS API for JavaScipt开发教程>而临阵磨枪. 在接触JS一段时间后,觉得还是比较灵活的,灵活的前提是要更深入的了解,就像两个陌生的人,相处的时间长了,了解的时间长了,难免会产生感情一样.对于JS也开始产生了感情,这种感情体现在工作中,体现在周围的环境中. 目前很多开发者纷纷加入JS的阵营,看来这已经不是跟风…
原文为 http://benalman.com/news/2010/11/immediately-invoked-function-expression/#iife ------------------------ES6拓展篇 ----------ES6  let实际上为 JavaScript 新增了块级作用域. ----------块级作用域的出现,实际上使得获得广泛应用的立即执行函数表达式(IIFE)不再必要了. // IIFE 写法 (function () { var tmp = ...…
我在写代码时候经常会在tpl的<script>里写类似的代码: $(function(){ alert("我好饿"); }); 刚开始的时候只知道写了它不需要调用,直接执行,就这样依葫芦画瓢,我写了很多代码.说道这,还要说说这货的加载顺序,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了.如果在这代码里用到了未加载的dom或者调用了未加载的方法,是会报错的.言归正传,这个函数其实就是自执行函数,很多人会比较专业地称为"立即…
1.js中如何在函数a里面执行函数b function a(参数c){ b(); } function b(参数c){ } 方法2: <script type="text/javascript" language="javascript"> $(document).ready(function() {     $("#asd").click(function(){         aa();     }); });       fun…
js执行函数报错Cannot set property 'value' of null 的解决方案: 原因:dom还没有完全加载 第一步:所以js建议放在body下面执行, 第二步:window.onload就能放在head头部执行.…
原文:https://github.com/yangshun/front-end-interview-handbook/blob/master/questions/javascript-questions.md 最近将持续翻译JavaScript面试题,希望对各位有所帮助. (文章中斜体字部分为译者添加) 目录: Part 1(事件委托/this关键字/原型链/AMD与CommonJS/自执行函数) Part 2 (null与undefined/闭包/foreach与map/匿名函数/代码组织)…
1.模板语言变量 前端html页面中展示 {{ nodeIp }} 2.js变量引用模板语言变量 把模板语言变量传递给js,js去执行页面操作(变量的转换,只适用于字符串) var IP = "{{ nodeIp }}" 3.js自执行函数里调用变量 各种jquery里面找标签,根据某些内容找标签,内容是变量需要'+变量+'来使用 $('td div:contanins('+IP+')')…
js立即执行函数可以让你的函数在创建后立即执行,js立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行. 一.JS立即执行函数的写法 方式1.最前最后加括号 (function(){alert(1);}()); 方式2.function外面加括号 (function(){alert(1);})(); 方式3.function前面加运算符,常见的是!与void !function(){alert(1);}(); void…
js自执行函数的常见写法 2016-12-20 20:02:26 1.关于自执行函数 1.1 写自执行函数的好处:独立的作用域,不会污染全局环境 (function() { })(); 1.2 理解重点:函数的自执行过程 1.3 参考书籍:JS高级程序设计指南 1.4 给自执行函数加参数的好处:对于当前作用域中,如果将window传入,就不用依赖全局对象了,一直控制在局部作用域 (function(window,document) { var div=document.getElementByI…
有些时候我们需要动态的加载一些JS,并在JS加载完成后执行一些回调函数. var loadscript = { $$: function (id) { return document.getElementById(id); }, tag: function (element) { return document.getElementsByTagName(element); }, ce: function (element) { return document.createElement(elem…
自执行函数的写法通常如下: 方式1: (function(){ *** 写事件处理代码 *** }()) 方式2: (function(){ *** 写事件处理代码 *** })() 方式3: !(function(){ *** 写事件处理代码 *** })() 在function前面加!.+.-.=都可以将函数声明转化为函数表达式,消除了js引擎识别函数声明和函数表达式的歧义,加()是最安全的方法,免得其他的和函数返回值进行运算. 自执行函数传参时,参数赋值直接在后面的括号里面: (funct…
1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景:   <input type="button" value="点击" id="btn">   <script type="text/javascript">   //匿名函数的第一种情形   var btn=document.querySelector("#btn");   btn.onclick=fun…
看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数.立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数. 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明确一下函数声明.函数表达式及匿名函数的形式,如下图: 接下来看立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一…
前言 起因是我要在jquery的ajax中需要根据返回值来决定是否继续发起ajax请求,这是一个有条件的循环,符合条件就跳出.可以使用while循环的,但是想了想还是递归调用好用. 调用递归函数 递归函数大概就是这样的.不符合条件重新执行这个函数 function f() { // do something ){ } else{ f(); } } 圆括号运算符和自执行函数 js中圆括号运算符指 (),一般有两个作用. 1.在函数后面表示立即执行这个函数,如 f() 2.计算表达式,如 // 打印…
先看一段jQuery源码中匿名函数自执行的例子: (function( window, undefined ) { // jquery code })(window); 另外一种常见的写法: +function( $ ) { // jquery code })(window.jQuery); 这两种写法该如何理解呢?第二种写法前面为何要加“+”号,不加会是什么结果呢? function( $ ) { // jquery code })(window.jQuery); // 报错: Uncaugh…