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_Conceptual - Fatal编程技术网

Javascript 函数声明与函数定义

Javascript 函数声明与函数定义,javascript,conceptual,Javascript,Conceptual,JavaScript中函数声明和函数定义的区别是什么?我读了第5.3.2章 然而,嵌套时,函数声明可能 仅显示在嵌套在其中的函数的顶层。即功能 定义不能出现在if语句、while循环或任何其他语句中 但我不明白声明和定义之间的区别。。。请解释一下(注意:我理解函数表达式和函数声明之间的区别!)在这种情况下,它们只是用两个不同的术语来指代同一事物。官方术语是“功能声明” 官方数据来源于ECMAScript标准的第98页。重要的是区分两种情况: var f1=function(){…} 这通常被称

JavaScript中函数声明和函数定义的区别是什么?我读了第5.3.2章

然而,嵌套时,函数声明可能 仅显示在嵌套在其中的函数的顶层。即功能 定义不能出现在if语句、while循环或任何其他语句中


但我不明白声明和定义之间的区别。。。请解释一下(注意:我理解函数表达式和函数声明之间的区别!)

在这种情况下,它们只是用两个不同的术语来指代同一事物。官方术语是“功能声明”


官方数据来源于ECMAScript标准的第98页。

重要的是区分两种情况:

  • var f1=function(){…}
    这通常被称为函数表达式

  • 函数f2(){…}
    这通常被称为函数声明

无论您给它起的名字是什么,
var f1
将被提升到包装函数的顶部(但是
f1
将仅在您所写的行处被分配函数的值)但是f2的整个功能声明将被提升到包装功能的顶部


有一篇很好的帖子详细解释了这一点。

可能相关:请给我一些声明和JS的例子
var x=function(){return true;}
。我想你可以在这里说
x=function
是声明,并且
返回true
是该函数的定义。函数定义-没有名称和函数声明的函数体-只有函数名称,但没有函数体?“官方术语”?你能用官方文件的链接或引用来证明这一点吗?JS中的声明和定义摘要?@igor_rb我以前从未听过“定义”,但在这里它们似乎是同义词,是的。@JamesDonnelly:The指定了定义函数的FunctionDeclaration和FunctionExpression。在这本书中,declaration和definition这个词经常使用,这给了我一些误解。谢谢