声明一个匿名函数,然后立即执行它。这种做法就是立即执行函数。
实现立即执行函数的方法有
(function(){alert('我是匿名函数')}())
(function(){alert('我是匿名函数')})()
!function(){alert('我是匿名函数')}()
+function(){alert('我是匿名函数')}()
-function(){alert('我是匿名函数')}()
~function(){alert('我是匿名函数')}()
void function(){alert('我是匿名函数')}()
new function(){alert('我是匿名函数')}()
var x = function(){return '我是匿名函数'}()
匿名函数的作用:
在 ES6 之前,只能通过它来「创建局部作用域」。
一个例子:为了不打印出5个6,需创造局部变量,用立即执行函数
for (var i = 1; i < 6; i++){
!function(j){
setTimeout(()=>console.log(j), 0)
}(i)
}
而现在我们可以使用 ES6 的 block + let 语法,来创建局部作用域
for (let i = 1; i < 6; i++){
setTimeout(()=>console.log(i), 0)
}