函数声明
function 函数名(){}
函数声明会被率先读取。
函数声明后不会立即执行,会在我们需要的时候调用到。
由于函数声明不是一个可执行语句,所以不以分号结束。
函数表达式
表达式赋值给了一个变量
const 变量名 = function xx() {}
const 变量名 = function () {}
匿名函数
(function() {})(); // 通过添加括号,来说明它是一个函数表达式
函数提升
函数声明可以进行函数提升。函数表达式不可以进行函数提升。使用表达式定义函数时无法提升。
所以下面的代码输出的是undefined和TypeError:foo is not a function
参考
https://blog.csdn.net/weixin_43859703/article/details/88982455
https://www.runoob.com/js/js-function-definition.html