// 立即执行函数
// 不在 内存 中 存储函数
// 在定义函数的同时,马上执行函数
// 执行完函数之后,就会立即释放内存中存储的函数
// 也就是立即执行函数,会马上执行,但是只能执行一次
// 有些函数执行时,只需要执行一次,如果使用立即执行函数,可以执行完毕后就释放函数,节约存储空间
// 封装 fun 函数 只有调用才会执行函数
function fun1(){console.log(123)}
// 立即执行函数
// ( 将函数作为一个整体来执行 )
// 第二个()的作用就是作为一个整体,立即执行封装的函数
// 执行完立即执行函数之后,会立即释放 存储 fun2 的内存空间
// 内存中 不再存储 fun2 这个函数
( function fun2(){console.log(456)} )()
!function fun3(){console.log(789)}()
~function fun4(){console.log(120)}()
// 其他立即执行函数的语法形式
// (函数)()
// !函数()
// !函数()