冉冉说
分号后函数的声明是没有必要的。a的语法FunctionDeclaration在规范中描述为:function Identifier ( FormalParameterListopt ) { FunctionBody }语法上没有分号,但可能想知道为什么?分号用于将语句彼此分开,而a FunctionDeclaration不是声明。FunctionDeclarations在代码进入执行之前进行评估,提升是用于解释此行为的常用词。术语“函数声明”和“函数声明”经常被错误地互换使用,因为ECMAScript规范中没有描述函数声明,但是有些实现在语法中包含一个函数声明,特别是Mozilla-但是这个是非标准的。但是,在您使用的地方始终建议使用分号FunctionExpressions,例如:var myFn = function () {
//...};(function () {
//...})();如果在上例中的第一个函数之后省略分号,则会得到完全不希望的结果:var myFn = function () {
alert("Surprise!");} //
//...})();第一个函数将立即执行,因为围绕第二个函数的括号将被解释为Arguments函数调用。推荐讲座:命名的函数表达式揭秘(伟大的文章)