//用括号把整个表达式包起来
(function(){alert('one')}())
//用括号把函数包起来
(function(){alert('two')})()
// 求反,不用在意值是什么,能通过语法检查就行
!function(){alert('three')}()
+function(){alert('three')}()
-function(){alert('four')}()
~function(){alert('five')}()
void function(){alert('six')}()
new function(){alert('seven')}()
let x = function(){return 'eight'}()
作用: 创建局部变量
优点: 兼容性好 ES3 都可以支持
替代: 可以用 ES6 的 block + let 语法
{
let sam = 'I am sam'
console.log(sam) // sam
}
console.log(sam) // sam is not defined