声明一个匿名函数,然后立即执行它。这种做法就是立即执行函数。
实现立即执行函数的方法有
(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)}
