立即执行函数和闭包没有什么关系,只是两者会经常结合在一起使用而已,但两者有本质的不同。
闭包和立即执行函数都可减少全局变量的使用
立即执行函数在函数声明后立即执行,一般般只调用一次,可以减少内存的占用
闭包是函数调用函数,主要是让外部函数可以访问内部函数的作用域。减少了全局变量的使用,保证了内部变量的安全。但因为被占用的内部变量不能销毁,会占用内存,增加内存消耗,使用不当会造成内存泄露。
var let const
var 全局变量,重复定义同一个变量名不会报错。存在变量前置
let 局部变量,不可重复定义同一个变量名。
const 常量,但定义一个数组或对象可以修改,因为他们是引用类型。
for(var i=0;i<5;i++){
console.log('i=', i) // 0 1 2 3 4
}
console.log(i) // 5
for(let i=0;i<5;i++){
console.log('i=', i) // 0 1 2 3 4
}
console.log(i) // i is not defined
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。