立即执行函数

209 阅读1分钟

立即执行函数就是声明一个匿名函数,然后立即执行它。在 ES6 之前,通过声明立即执行函数来创建局部作用域,下面是声明立即执行函数的九种方式:

//1
(function(){
  console.log("11111");
}());

//2
 (function(){
  console.log("22222");
})();

//3
!function(){
  console.log("33333");
}();

//4
+function(){
  console.log("44444");
}();

//5
-function(){
  console.log("55555");
}();

//6
~function(){
  console.log("66666");
}();

//7
void function(){
  console.log("77777");
}();

//8
new function(){
  console.log("88888");
}();

//9
var x = function(){
  console.log("99999");
}()

ES6 之后,我们可以通过 block + let(const) 来创建局部作用域,如下

{
  let x = 6;
  console.log(x);  //打印出 6
}
console.log(x); // 报错,找不到 x