定义函数的JavaScript差异

问题描述

| 我刚刚购买了最新版本的\“ JavaScript:The Definitive Guide \”,并且已经有一个疑问。 :D 以下几行在语义上是否相同:
var square = function(n){
                 return n * n;
             };
function square(n){
    return n * n;
}
如果是,使用它们中的任何一个有什么优点/缺点? 谢谢你的帮助!     

解决方法

看一下这个:
a(); // prints \'A\'

function a(){

    console.log(\'A\');

};
还有这个:
b(); // throws error. b is not a function

var b = function() {

    console.log(\'B\');

};
您注意到差异了吗?     ,是的,他们做的完全一样。 第一种方法的主要优点是,它为您提供了对该函数的引用,以便您可以将其传递给另一个函数或在需要时将其附加到对象。     ,区别在于,在第一个解决方案中,您可以执行以下操作:
var square = function(n){
                 return n * n;
             };

// some code

square = function(n) { return n*n*n; }
您已经引用了一个函数。在另一个解决方案上,该函数是静态声明的。 免责声明:如果我错了,需要JS专家告诉我=)。