为什么我应该在javascript中的每个函数之后使用分号?
2022-08-30 00:07:24
我见过不同的开发人员在javascript中的函数后面包含分号,有些则没有。哪种是最佳做法?
function weLikeSemiColons(arg) {
// bunch of code
};
或
function unnecessary(arg) {
// bunch of code
}
我见过不同的开发人员在javascript中的函数后面包含分号,有些则没有。哪种是最佳做法?
function weLikeSemiColons(arg) {
// bunch of code
};
或
function unnecessary(arg) {
// bunch of code
}
函数声明后面的分号不是必需的。
规范中描述了 的语法如下:FunctionDeclaration
function Identifier ( FormalParameterListopt ) { FunctionBody }
语法上不需要分号,但可能想知道为什么?
分号用于将语句彼此分开,而 a 不是语句。FunctionDeclaration
FunctionDeclarations
在代码进入执行之前进行评估,提升是用于解释此行为的常用词。
术语“函数声明”和“函数语句”经常被错误地互换使用,因为 ECMAScript 规范中没有描述函数语句,但是有一些实现在其语法中包含函数语句,特别是 Mozilla-,但这又是非标准的。
但是,始终建议在使用 分号的位置使用 分号。例如:FunctionExpressions
var myFn = function () {
//...
};
(function () {
//...
})();
如果在上面的示例中省略第一个函数后面的分号,您将获得完全不需要的结果:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
第一个函数将立即执行,因为第二个函数周围的括号将被解释为函数调用的。Arguments
推荐讲座:
FunctionDeclaration
FunctionExpression
)我在函数作为变量声明之后使用它们:
var f = function() { ... };
但不是在古典风格的定义之后:
function f() {
...
}