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