写法如下:

(function() {
console.log(“hello”)
})();

就是用一对括号把函数包起来,然后再在后面加一对括号。

那么,它有什么用呢?众所周知,ES6之前是没有块级作用域的,函数的立即执行就可以一定程度上缓解这个问题。

举个栗子:

假设我需要把当前日期以 “yyyy/mm/dd” 的形式赋给某个变量

var currentTime = (function(){
  var t = new Date();
  var year = t.getFullYear();
  var month = t.getMonth()+1;
  var date = t.getDate();
  return year + "/" + month + "/" + date
 }
)()

而我使用的这一大串变量并不会影响到外面的作用域中,所以更优雅。

               

作者