分号后 函数的声明 是 。
a的语法FunctionDeclaration
在规范中描述为:
function Identifier ( FormalParameterListopt ) { FunctionBody }
语法上没有分号,但可能想知道为什么?
分号用于将 语句 彼此分开,并且a FunctionDeclaration
不是 语句 。
FunctionDeclarations
在代码执行之前进行评估,是用来解释这种行为的 常用词 。
术语“函数声明”和“函数声明”通常会错误地互换使用,因为ECMAScript规范中没有描述函数声明,但是有一些实现在其语法中包括函数声明,特别是Mozilla,但同样是非标准的。
但是,始终建议在使用的地方使用分号FunctionExpressions
,例如:
var myFn = function () {
//...
};
(function () {
//...
})();
如果在上面的示例中的第一个函数之后省略分号,则将获得完全不希望的结果:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();