Javascript 返回函数的函数,即声明的函数

Javascript 返回函数的函数,即声明的函数,javascript,Javascript,我对这个回答有点困惑 foo=“ffsds”; 功能条(){ 返回foo; var-foo=10; 函数foo(){return“func”;}; foo=“5353”; } console.log(typeof bar())这是因为。 函数声明首先“执行”。比所有其他作业都重要 但您在顶部编写了一个返回,因此只有函数声明有效,这就是为什么您得到的是函数而不是其他值 下面是一个简单的例子 功能测试(){ 返回一个;//返回 var a;//变量声明,尽管返回,但仍然有效,但a等于函数a,因为

我对这个回答有点困惑

foo=“ffsds”;
功能条(){
返回foo;
var-foo=10;
函数foo(){return“func”;};
foo=“5353”;
}
console.log(typeof bar())这是因为。
函数声明首先“执行”。比所有其他作业都重要

但您在顶部编写了一个
返回
,因此只有函数声明有效,这就是为什么您得到的是函数而不是其他值

下面是一个简单的例子

功能测试(){
返回一个;//返回
var a;//变量声明,尽管返回,但仍然有效,但a等于函数a,因为函数声明优先于变量声明
函数a(){
返回1;
}//函数声明,尽管返回,但仍然有效,将a重写为函数
a=33;//函数赋值-不起作用,因为return在赋值之前执行。a仍然是函数
}
log(test())这是因为。
函数声明首先“执行”。比所有其他作业都重要

但您在顶部编写了一个
返回
,因此只有函数声明有效,这就是为什么您得到的是函数而不是其他值

下面是一个简单的例子

功能测试(){
返回一个;//返回
var a;//变量声明,尽管返回,但仍然有效,但a等于函数a,因为函数声明优先于变量声明
函数a(){
返回1;
}//函数声明,尽管返回,但仍然有效,将a重写为函数
a=33;//函数赋值-不起作用,因为return在赋值之前执行。a仍然是函数
}
log(test())这是因为JS。如前所述

位次 声明时记住几件事很重要 JavaScript函数和变量

  • 变量赋值优先于函数声明
  • 函数声明优先于变量声明
  • 函数声明悬挂在变量声明之上,但 不超过变量赋值

    特别注意这一部分,

    函数声明挂起在变量声明上,但不挂起在变量赋值上。

    提升后,代码将执行如下操作:

    foo=“ffsds”;
    功能条(){
    函数foo(){return“func”;};
    返回foo;
    foo=10;
    foo=“5353”;
    }
    警报(条()的类型)这是因为JS。如前所述

    位次 声明时记住几件事很重要 JavaScript函数和变量

  • 变量赋值优先于函数声明
  • 函数声明优先于变量声明
  • 函数声明悬挂在变量声明之上,但 不超过变量赋值

    特别注意这一部分,

    函数声明挂起在变量声明上,但不挂起在变量赋值上。

    提升后,代码将执行如下操作:

    foo=“ffsds”;
    功能条(){
    函数foo(){return“func”;};
    返回foo;
    foo=10;
    foo=“5353”;
    }
    
    警报(条()的类型)这是由于吊装造成的。这不是一个完全重复的问题,但很接近:这是由于吊装。不是一个完全重复的问题,但关闭:更新。谢谢@3limin4T0r更新。谢谢@3limin4t0r