var myFunction = function(){}; vs function myFunction(){};

时间:2011-11-14 09:19:55

标签: javascript

您如何看待哪一个是更好,更快,更好的声明函数的解决方案?

首先:

(var) myFunction = function(){
//Stuff to do
};

或第二:

function myFunction() {
//Stuff to do
};

两者都适用于JavaScript和JQuery。但你觉得哪个更好?

1 个答案:

答案 0 :(得分:7)

请注意,两者的行为都不同 - function语句定义的函数是在代码执行之前定义的。

typeof f; //returns 'undefined'
var f = function() {};

typeof f; //returns 'function'
function f() {} 

(您是否也注意到我在哪里以及我没有使用分号?)

此外,块中禁止使用函数语句(第二个选项)。未定义以下内容应如何工作:

if (false) {
    function f(){}
}

因此,在某些浏览器中,函数f可能会在不合逻辑的情况下被声明。但是,允许执行以下操作:

var f;
if (some expr) {
    f = function() {};
}

下次在提问之前更好地搜索var functionName = function() {} vs function functionName() {}