区别在于它
functionOne是一个函数表达式,因此仅在到达该行时才定义,而是
functionTwo函数声明,并在其周围的函数或脚本执行后(由于提升)而定义。
例如,一个函数表达式:
// TypeError: functionOne is not a functionfunctionOne();var functionOne = function() { console.log("Hello!");};并且,一个函数声明:
// Outputs: "Hello!"functionTwo();function functionTwo() { console.log("Hello!");}这也意味着您不能使用函数声明有条件地定义函数:
if (test) { // Error or misbehavior function functionThree() { doSomething(); }}上面的定义实际上
functionThree与
test的值无关,除非
use strict有效-除非有效,在这种情况下,它只会引发错误。



