一、函数
- 函数声明 function 函数名称 (参数:可选){ 函数体 }
- 函数表达式 function 函数名称(可选)(参数:可选){ 函数体 }
如何判断是函数声明还是函数表达式呢?
ECMAScript是通过上下文来区分的,如果function foo(){}是作为赋值表达式的一部分的话,那它就是一个函数表达式,如果function foo(){}被包含在一个函数体内,或者位于程序的最顶部的话,那它就是一个函数声明。
function foo(){} // 声明,因为它是程序的一部分
var product = function product(){}; // 表达式,因为它是赋值表达式的一部分
new function Person(){}; // 表达式,因为它是new表达式
(function(){
function addProduct (){} // 声明,因为它是函数体的一部分
})();
函数声明的规则:
函数声明只能出现在程序或函数体内。从句法上讲,它们 不能出现在Block(块)({ ... })中,例如不能出现在 if、while 或 for 语句中。因为 Block(块) 中只能包含Statement语句, 而不能包含函数声明这样的源元素。
函数声明只能出现在程序或函数体内。从句法上讲,它们 不能出现在Block(块)({ ... })中,例如不能出现在 if、while 或 for 语句中。因为 Block(块) 中只能包含Statement语句, 而不能包含函数声明这样的源元素。
本文详细解释了在ECMAScript中函数声明与函数表达式的定义及如何区分两者。介绍了函数声明的位置限制,并通过示例代码说明了不同情况下两者的应用。
2674

被折叠的 条评论
为什么被折叠?



