学习js函数--自执行函数】的更多相关文章

JS匿名函数自执行函数:(function(){})();(function(){}) 这是一个函数,函数后面接(),则是调用函数 比如(function(arg){console.log(arg);})(4);   则输出4 好处:放在里面,不会污染外面的变量,也保护了自己,外面调用不了里面的函数和变量.在js中写大量代码,可以防止变量冲突和错误调用. 插件常用的是( function ($ ) {// 插件代码} ) (jQuery ) ; 这样的好处是可以在函数内自由使用$,不用担心跟别的…
JS 的立即执行函数 本文写于 2019 年 12 月 7 日 其实 ES6 之后有了之后,很多之前的用法都没必要了,立即执行函数就是其一. 今天看到一道面试题: 请「用自己的语言」简述 立即执行函数是什么 立即执行函数有什么用途 我愣了一下,突然发现自己不是很能清晰的解答这个概念. 我只知道()代表了两种作用: 包裹 执行函数 立即执行函数该怎么描述呢? 声明一个匿名函数,然后马上调用这个匿名函数,就是立即执行函数? 的确,这就是一个典型的立即执行函数. 首先声明一个匿名函数: functio…
立即执行函数:常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),一般想到的方法就是使用立即执行函数.jQuery就是使用的立即执行函数. 函数有三种:函数声明 函数表达式 匿名函数 立即执行函数常见形式: (function(i){ console.log(i) }(1)) (function(i){ console.log(i); })(2) //2 (function fn(i){      console.log(i) }(1)) …
我在写代码时候经常会在tpl的<script>里写类似的代码: $(function(){ alert("我好饿"); }); 刚开始的时候只知道写了它不需要调用,直接执行,就这样依葫芦画瓢,我写了很多代码.说道这,还要说说这货的加载顺序,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了.如果在这代码里用到了未加载的dom或者调用了未加载的方法,是会报错的.言归正传,这个函数其实就是自执行函数,很多人会比较专业地称为"立即…
先看看最常见的一个问题: <!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.可以在函数前面加符号,或者用括…
匿名自执行函数:没有方法名的函数闭包:闭包是指有权访问另一个函数作用域变量的函数: 通过一个实例来解释: 从网上找到了一个案例,使用了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…
函数声明: function add(a, b) { // ... } 1.顾名思义,声明一个函数, 用关键字 “function” 来告诉,这是一个函数. 2.任何地方,想用就可以拿过来使用 函数表达式: var add = function (){ //... }; 表达式, 最先想到的赋值表达式,如 a = b; 1.表达式与声明的区别之一, 末尾有无 分号(;) 结束. 2.表达式不同于声明的区别之二: 函数表达式的函数并不是想用就可以调用, 他要等到程序执行到他的时候才可以使用. 在函…
在理解了一些函数基本概念后,回头看看( function(){…} )()和( function (){…} () )这两种立即执行函数的写法,最初我以为是一个括号包裹匿名函数, 并后面加个括号立即调用函数,当时不知道为什么要加括号,后来明白,要在函数体后面加括号就能立即调用,则这个函数必须是函数表达式,不能是函数声明. (function(a){ console.log(a); //firebug输出123,使用()运算符 })(123); (function(a){ console.log(…
在js中的执行上下文,菜鸟入门基础 这篇文章中我们简单的讲解了js中的上下文,今天我们就更进一步的讲解js中的执行上下文. 1.当遇到变量名和函数名相同的问题. var a = 10; function a(){ console.log(1); } a(); //报错 如果你觉得函数a会覆盖变量a那你肯定是js的新朋友,为什么这里会报错呢?我记得我在基础的执行上下文文章中说过变量声明提前的概念,对这里就是因为这个原因,但是在上面一篇文章中还有一个问题我没有去讲. 那就是函数的声明比变量的声明顺序…