区别在于,functionOne的是一条表达式语句,只有程序执行到这行函数才会被定义。然而functionTwo是函数声明,它会在JavaScript一开始就被定义。如下两个例子可以看出它们的区别。函数表达式: // 是个错误的函数调用,functionOne没有被定义。 functionOne(); //程序执行到这里functionOne才会被定义。 var functionOne = function() { console.log("Hello!"); };函数声明://functionTow会输出: "Hello!"functionTwo(); function functionTwo() { console.log("Hello!"); }通过对上面例子的理解。我们可以推断出,如下的函数声明是不合理的。 if (test) { //错误或不好的风格 function functionThree() { doSomething(); } }这里在if语句中声明了函数,其实它的声明不会管test的值是多少,都会被定义,这样的风格并不好。如果你在use strict下编写上述代码,那么将会报错。秒秒学上有不少函数相关的例子,你可以去看看。