javascript函数是否需要按相反的顺序声明?

javascript函数是否需要按相反的顺序声明?,javascript,function,Javascript,Function,精化:例如,如果我有以下代码: //Javascript example var alice = function() { var value = bob() + 1; console.log value } var bob = function() { var value = 1; return value; } //Running function A alice() 我是否必须首先声明函数B,因为我在函数A中调用它时还没有到达函数B。否,因为Javasc

精化:例如,如果我有以下代码:

//Javascript example
var alice = function() {
    var value = bob() + 1;
    console.log value
}
var bob = function() {
    var value = 1;
    return value;
}

//Running function A
alice()

我是否必须首先声明函数B,因为我在函数A中调用它时还没有到达函数B。

否,因为Javascript解释器将识别后面声明的函数,并将它们适当地链接到相关行。

如果您有一个函数声明,那么它将被挂起,并且顺序无关紧要(尽管将函数按顺序放置以便函数调用不会在调用函数之前出现是一种良好的做法)


如果您有函数表达式(就像您在示例中所做的那样),那么您需要在调用函数之前创建这些函数,注意在本示例中,
alice()行之前没有调用任何函数
因此,只需将该行放在函数之后,函数本身的顺序就无关紧要了。(但上述最佳实践原则仍然适用)。

唯一的限制是在使用之前定义每个函数

如果在程序开始时调用函数alice(),会有什么不同吗?在我定义它们之前?这会使它无法工作吗?@user3367792不,在使用函数表达式(
var…=function…;
)时,不能在赋值发生之前调用它们。声明的变量将在手之前可用,但尚未将
函数
作为其值。否。函数声明语句被挂起。@SLaks-问题中没有函数声明语句。