Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 声明函数是否会创建一个具有函数名和分配给它的函数对象的变量?_Javascript - Fatal编程技术网

Javascript 声明函数是否会创建一个具有函数名和分配给它的函数对象的变量?

Javascript 声明函数是否会创建一个具有函数名和分配给它的函数对象的变量?,javascript,Javascript,只是想澄清一些关于JavaScript中函数的混淆。声明的函数是否在同一函数范围内创建函数名为的变量,并将函数对象分配给自身 根据代码 function name(){} 它是否转化为 var name = function name(){} 就在行刑前?如果函数是一个对象,它应该通过引用保存在范围内的某个位置,对吗?基本上是的,但有一个例外 在这两个示例中,name函数都将分配给name变量。在第一个示例中,名称变量和函数定义将被提升到当前范围的最上部 在第二个示例中,name变量将被提升

只是想澄清一些关于JavaScript中函数的混淆。声明的函数是否在同一函数范围内创建函数名为的变量,并将函数对象分配给自身

根据代码

function name(){}
它是否转化为

var name = function name(){}

就在行刑前?如果函数是一个对象,它应该通过引用保存在范围内的某个位置,对吗?

基本上是的,但有一个例外

在这两个示例中,name函数都将分配给name变量。在第一个示例中,名称变量和函数定义将被提升到当前范围的最上部


在第二个示例中,name变量将被提升到当前范围的最上部,但定义将保持在代码中的当前位置。

简短回答:是。长回答:它会这样做,加上函数定义与变量声明一起提升到当前范围的顶部。@AlexisKing没有提升。变量和函数声明是在程序中的代码执行之前处理的。@RobG它没有直接的答案,但有助于理解2和2之间的区别approaches@RobG-这在概念上与吊装相同。同样的结果。但是你当然是对的,声明并没有真正地移到顶部。