1.什么是立即调用函数?
立即调用函数:也叫立即执行函数,会在函数创建后立即调用,并且只会调用一次。
2.作用
立即调用函数创造了一个私有的作用域,不会让这个作用域中的变量和方法污染到全局。
- 封装变量
- 闭包和私有数据
3.写法
立即调用函数主要包括两部分,第一部分是包围在圆括号运算符 () 里的一个匿名函数,这个匿名函数拥有独立的词法作用域。这不仅避免了外界访问此 IIFE 中的变量,而且又不会污染全局作用域。第二部分再使用 () 创建了一个立即执行函数表达式,JavaScript 引擎到此将直接执行函数。
function这个关键字,既可以当作语句,也可以当作表达式,为了避免语句上的歧义,js引擎规定,function出现在首行一律解析成语句。因此js引擎看见首行是function关键字后,认为这一段都是函数定义,不应该以圆括号结尾,所以就会报错,解决办法就是使用立即执行函数