This question already has answers here:
var functionName = function() {} vs function functionName() {}
                                
                                    (39个答案)
                                
                        
                        
                            What is the difference between a function expression vs declaration in JavaScript? [duplicate]
                                
                                    (5个答案)
                                
                        
                5年前关闭。
            
        

我无法轻松找到答案,所以即使这个问题是重复的,答案也不会使用这些关键字出现。

我想知道示例app.js中声明函数的不同方式之间的区别

var foo = function()
{
  //..
}

function bar()
{
  //..
}

var baz= function()
{
  //..
}

function qux()
{
  //..
}

// other??


我也不清楚我可以使用每个功能的范围。谢谢!

最佳答案

使用JavaScript创建函数有四种方法。

功能声明

这将在当前作用域中创建一个变量foo,并为其分配一个命名函数。

function foo () {

}


函数声明是悬挂式的,因此在适用范围内的任意位置放置都无关紧要。不过,在使用它们之前先定义它们是一种良好的编码习惯。

匿名函数表达式

这将创建一个没有名称的函数,并在表达式中使用它。在此示例中,将其分配给变量something

something = function () {

};


命名函数表达式

这与匿名函数表达式相同,除了它具有名称,在其自身范围内创建该名称的变量并且在Internet Explorer的较早版本中为horribly broken

something = function foo () {

};


函数构造函数

不要使用函数构造函数。它们的别名是eval。如果您有兴趣,可以在MDN上阅读有关它们的信息。

关于javascript - javascript函数声明和作用域差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27924037/

10-12 12:58
查看更多