JavaScript中的函数声明

“Usual” functions vs function variables in JavaScript

本问题已经有最佳答案,请猛点这里访问。

两者有什么区别吗

1
2
3
function MyFunc() {
    // code...
}

1
2
3
var MyFunc = function() {
    // code...
};

在JavaScript中?


我知道它们之间的区别在于,命名函数在任何地方都可以工作,不管您声明它们,变量中的函数都不工作。

1
2
a();//works  
function a(){..}

作品

1
2
a();//error
var a=function(){..}

不起作用,但如果你在申报后打电话,它就起作用了

1
2
var a=function(){..}
a();//works

本文可能会回答您的问题:javascript函数声明不明确。

只有第一个是实际的函数声明,而速记方法只是一个正则变量声明,其值为一个匿名函数。

(也请看评论,这些评论可能也会得到一些有用的信息)


表面上没有区别,所以您可以在代码中使用这两种格式。

对于JS解释器来说,这是不同的。

第一个是一个叫funciton的。

第二个是一个匿名函数,它被分配给一个变量。

此外,在调试时,您将无法获得堆栈跟踪中第二个函数的名称。