匿名函数的作用
- 不必为函数命名,避免了污染全局变量
- IIFE内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。
- 使用运算符号
// 使用特殊符号!, +, -, ~等,注意:';'分号不可以
!function() {
console.log('立即执行')
}()
- 使用圆括号
1.
;(function(){
console.log('立即执行')
}())
2.
;(function(){
console.log('立即执行')
})()
- 注意事项
// 错误写法:
// Uncaught SyntaxError: Unexpected token (
function(){
console.log('立即执行?会报错!')
}()
// 正确写法
var fn = function(){
console.log('立即执行')
}()
// 此方式可以按照第一种运算符号形式的立即执行函数理解,此时,function先被调用,打印出‘立即执行’
// 此function没有返回值所以此时fn为undefined。
console.log(fn) // 输出 undefined