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