js 中如果使用函数语句方式声明, 则可以先使用, 先声明
如果使用变量形式声明函数, 那么务必先声明再使用
// 使用函数语句方式才可以先使用, 再声明
console.log(foo2)
// undefined
console.log(foo3)
// 使用表达式方式, 例如 var / let / const 修饰函数, 都务必先声明再使用, 否则报错
// Uncaught TypeError: foo3 is not a function
foo3()
function foo2() {
console.log('foo2')
}
var foo3 = function () {
console.log('foo3')
};
// Uncaught ReferenceError: Cannot access 'foo3' before initialization.
console.log(foo)
let foo = function () {
console.log('foo')
};