一。定义:
此类函数没有声明,在一次执行后即释放(销毁)。
好处:为了避免变量污染(命名冲突),适合做初始化工作。相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。
(PS:: 立即执行函数有预编译,有执行期上下文,但运行结束后会销毁)
二。官方写法:(有两种)
1.这种也是W3C标准推荐的一种写法:
一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中
2.第二种写法:
一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号
三。和闭包结合的一个实例:
在下面闭包代码中填写代码,在页面输出0123456789
解决思路: 使用立即执行函数。读到这里就会立即执行,即在for循环中就被执行了。
知识点: for循环嵌套函数,然后保存到外部。闭包。立即执行函数。
解决代码如下:
四。在后期的一些学习中整理了一些知识点,供大家参考学习一下:
1.只有表达式才能被执行符号执行。
这里涉及了函数声明、函数表达式、匿名函数三个概念,给大家解释一下。
1.)函数声明: function关键字 + 函数名
2)函数表达式:var 变量名 = function关键字 + 函数体执行语句 (这里不存在函数名)
3)匿名函数:function + 函数体执行语句 (这里不存在函数名)
匿名函数属于函数表达式。他的好处很多——1.赋予一个变量则创建函数 2.赋予一个事件则成为事件处理程序或创建闭包
通俗的讲,立即执行函数里面必须是一个函数表达式。
2.一个表达式被执行了后,他有一个天生的功能:忽略这个函数的名字
PS:面试题在这里我分享一个非常有趣的题目给大家,是阿里的一个面试题,正好涉及了这里,非常的具有迷惑性。
大家看一下下面这段代码,猜一下页面会发生什么有趣的事情。
你肯定猜想在控制台上会输出一个加和,即10是吧。我一开始也是这样猜想的,实际上并不是这样。看下图:
很有趣是吧,它什么也没发生。计算机没有报错,也没有执行里面的内容。
当时我也很有疑惑,经过我百度知识点,查了一些东西以后,我简略的给大家讲一下。
在计算机内部,他的代码是识别成这个样子的:
好了,立即执行函数就给大家分享到这里了,如果大家还想了解一些其他比较有趣的前端小知识,请关注我。
我会随时更新一些比较有趣的知识的。