解释`function foo() {}` 和 `var foo = function() {}` 之间在`foo` 使用方法上的差异
Topics
JavaScript
在GitHub上编辑
前者是一个函数声明,而后者是一个函数表达式。 关键的区别是,函数声明会使它的主体被提升,但函数表达式的主体没有被提升(它们有和变量一样的提升行为)。 想要了解更多关于提升的解释,请参阅 提升。 如果你试图在定义之前调用函数表达式,你将会得到一个 Uncaught TypeError: XXX is not a function
。