为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

为什么我应该在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函数调用。

推荐讲座:

查看完整回答
反对 回复 2019-08-29
?
偶然的你

TA贡献1841条经验 获得超3个赞

我在函数变量声明之后使用它们:

var f = function() { ... };

但不是经典风格的定义:

function f() {
    ...}


查看完整回答
反对 回复 2019-08-29
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

JS Lint是事实上的约定,它在函数体之后没有分号。请参阅“分号”部分。


查看完整回答
反对 回复 2019-08-29
  • 3 回答
  • 0 关注
  • 683 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信