函数声明
- 函数名不可省略,省略了就变成非法语法
- 函数声明会存在函数提升
function fn () {}
函数表达式
不存在函数提升,在使用前就得定义函数,阅读体验更好const fn = function f () {}
匿名函数
匿名函数在回调参数中常见,可以省略函数名,优点是书写起来容易setTimeout(function () {}, 1000)
匿名函数表达式
```javascript // 写法二:匿名函数表达式 const fn = function () {}
// 写法二:箭头函数写法的匿名函数表达式 const fn = () => {}
<a name="xiikd"></a>
# 立即执行函数表达式(IIFE)
Immediately Invoked Function Expression,函数名不是必须的,完全可以省略。<br />第一个括号把函数变成了表达式,第二个括号执行了这个函数
```javascript
(function IIFE() {
})()