为什么我应该在javascript中的每个函数后使用分号?我见过不同的开发人员在javascript函数之后包含分号,而有些则没有。哪个是最佳做法?function weLikeSemiColons(arg) {
// bunch of code};要么function unnecessary(arg) {
// bunch of code}
3 回答
冉冉说
TA贡献1877条经验 获得超1个赞
分号后函数的声明是没有必要的。
a的语法FunctionDeclaration
在规范中描述为:
function Identifier ( FormalParameterListopt ) { FunctionBody }
语法上没有分号,但可能想知道为什么?
分号用于将语句彼此分开,而a FunctionDeclaration
不是声明。
FunctionDeclarations
在代码进入执行之前进行评估,提升是用于解释此行为的常用词。
术语“函数声明”和“函数声明”经常被错误地互换使用,因为ECMAScript规范中没有描述函数声明,但是有些实现在语法中包含一个函数声明,特别是Mozilla-但是这个是非标准的。
但是,在您使用的地方始终建议使用分号FunctionExpressions
,例如:
var myFn = function () { //...};(function () { //...})();
如果在上例中的第一个函数之后省略分号,则会得到完全不希望的结果:
var myFn = function () { alert("Surprise!");} // <-- No semicolon!(function () { //...})();
第一个函数将立即执行,因为围绕第二个函数的括号将被解释为Arguments
函数调用。
推荐讲座:
命名的函数表达式揭秘(伟大的文章)
添加回答
举报
0/150
提交
取消