es6出来之前, 我们一般用立即执行函数创建局部作用域
(function(){
var a = 1
console.log(a)
})()
等同用es6如下写法
{
let a = 1
console.log(a)
}
具体应用: 库类封装
类库封装最重要的要求就是不能让类库中的变量污染全局。
比如jQuery只暴露 $ 就好了
写法一
(function(){
var jq = window.$ = function(){
}
})()
写法二
var $ = (function(){
var jq = function(){}
return jq
})()