【问题标题】:Should I add a ; after putting a function into a variable? [duplicate]我应该添加一个;将函数放入变量后? [复制]
【发布时间】:2015-05-18 05:05:00
【问题描述】:

我应该在将函数放入变量后添加 ; 吗? 这段代码对吗?

pj.RemoveProjectTask = function (e, scope) {
    e.preventDefault();
    scope.remove();
};

pj.ToggleProjectTask = function (e, scope) {
    e.preventDefault();
    scope.toggle();
};

或此代码:

pj.RemoveProjectTask = function (e, scope) {
    e.preventDefault();
    scope.remove();
}

pj.ToggleProjectTask = function (e, scope) {
    e.preventDefault();
    scope.toggle();
}

【问题讨论】:

标签: javascript


【解决方案1】:

您应该添加一个分号来防止这种极端情况:

var foo = function(){
  // your code here
}

(x=42);

在这种情况下,JavaScript 实际上调用了函数并将 42 作为参数传入,并将 foo 设置为函数的返回值。

过去,当构建过程将多个 JavaScript 文件连接并缩小在一起时,这让我感到很痛苦,一个文件以 var foo = function(){ ... } 之类的函数赋值结尾,没有分号,而下一个文件以基于闭包的代码开头,例如 @ 987654324@

【讨论】:

    【解决方案2】:

    分号在 javascript 函数中是可选的...无论如何,如果添加它不会产生任何问题。请参阅标准代码约定 http://javascript.crockford.com/code.html

    【讨论】:

      【解决方案3】:

      在 javascript 中,在每个有效(函数调用、变量修改等)行之后添加分号是可选的,除非您希望在同一行上有多个指令,在这种情况下,分号是必需的:

      function something()
      {
          do_a_thing(); do_another_thing(); ...
      }
      

      但这可以像这样简单地编写:

      function something();
      {
          do_a_thing() // Can opt not to have a semicolon
          do_another_thing(); // Can opt to have a semicolon
      }
      

      在大多数情况下,这取决于您和您喜欢的风格

      【讨论】:

      • 你在开玩笑吗? 可选
      • @Mohamadshiralizadeh 它被称为自动分号插入,它是 Javascript that can get you in trouble if you rely on it 的可怕功能之一。最好始终明确添加它们。
      • 不在每一行的末尾。事实上,把它放在你自己代码的每一行之后会导致语法错误:function something(); {; do_a_thing(); do_another_thing(); }; is not grammatical.
      • @Amadan:好点。让我解决这个问题...
      【解决方案4】:

      ; 在 javascript 中是可选的,但如果您要遵循 jslintjshint 标准,您应该在每个语句的末尾加上 ;

      【讨论】:

      • 不在每一行的末尾。在每个语句的末尾。即使这样也不正确,因为例如,standalone function foo() { ... } 是一个不需要分号的完整语句。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 2012-08-18
      • 2012-09-03
      • 2011-03-31
      • 1970-01-01
      相关资源
      最近更新 更多