JS的立即执行函数是什么?

96 阅读1分钟

什么是立即执行函数?

声明一个匿名函数,然后立即执行它,这种做法就是立即执行函数。

举例:

下面这些都是立即执行函数。

(function(){alert('我是匿名函数')}()) // 用括号把整个表达式包起来
(function(){alert('我是匿名函数')})() // 用括号把函数包起来function(){alert('我是匿名函数')}() // 求反,不在意值是多少,只想通过语法检查。
-function(){alert('我是匿名函数')}()
~function(){alert('我是匿名函数')}()
void function(){alert('我是匿名函数')}()
new function(){alert('我是匿名函数')}()
var x = function(){return '我是匿名函数'}()

作用是什么?

现在我们使用 ES6 声明一个局部变量:

{
  let a
}

但是在ES6之前,只能通过它来创建局部作用域。
优点是兼容性好,缺点是写起来相对复杂,解决办法就是使用ES6语法的block + let语法。