初学者Javascript:What';这是';函数xyz(){}';和';var xyz=函数(){}';?

初学者Javascript:What';这是';函数xyz(){}';和';var xyz=函数(){}';?,javascript,Javascript,可能重复: 我一直在学习CodeAcademy的Javascript课程,有一些事情让我不知所措。我理解函数是如何工作的,我正试着去理解OOP和对象/方法 我的问题是,创建这样的函数有什么区别: function countTo(number){ for (var i=1; i<=number; i++){ console.log(i); } } countTo(15); var countToTwo = function(number){ f

可能重复:

我一直在学习CodeAcademy的Javascript课程,有一些事情让我不知所措。我理解函数是如何工作的,我正试着去理解OOP和对象/方法

我的问题是,创建这样的函数有什么区别:

function countTo(number){
    for (var i=1; i<=number; i++){
        console.log(i);
    }
}

countTo(15);
var countToTwo = function(number){
    for (var i=1; i<=number; i++){
        console.log(i);
    }
};

countToTwo(27);
函数countTo(number){

对于(var i=1;i来说,第一个是函数声明,并且是“highed”,这意味着它可以在上下文中的任何位置立即使用

第二个是函数表达式,与任何其他变量声明/赋值一样处理。
countToTwo
的声明被挂起并立即在声明的范围内的任何位置可用,但赋值保持在完全相同的位置

它的缺点是,在解析表达式之前,无法调用声明为表达式的函数

这段代码应该说明得更清楚一些

foo();

//blah();

function foo(){
    alert('hoisted and works');
}

var blah = function(){
    // not hoisted, would fail if called
}
​

你说得对-没有出现在我面前,因为原来的问题没有足够的描述性!谢谢。没问题,很高兴被重定向到这样一个很好的描述性答案。