为什么我应该在javascript中的每个函数后使用分号?

为什么我应该在javascript中的每个函数后使用分号?

我见过不同的开发人员在javascript函数之后包含分号,而有些则没有。哪个是最佳做法?

function weLikeSemiColons(arg) {
   // bunch of code};

要么

function unnecessary(arg) {
  // bunch of code}


MMTTMM
浏览 686回答 3
3回答

冉冉说

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

偶然的你

我在函数变量声明之后使用它们:var&nbsp;f&nbsp;=&nbsp;function()&nbsp;{&nbsp;...&nbsp;};但不是经典风格的定义:function&nbsp;f()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;...}

红颜莎娜

JS Lint是事实上的约定,它在函数体之后没有分号。请参阅“分号”部分。
打开App,查看更多内容
随时随地看视频慕课网APP