我应该加一个;将函数放入变量后?

时间:2015-05-18 05:05:01

标签: javascript

将函数放入变量后,我应该添加; 吗? 这个代码是对的吗?

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();
}

4 个答案:

答案 0 :(得分:5)

你应该添加一个分号来防范这种边缘情况:

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

(x=42);

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

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

答案 1 :(得分:1)

在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
}

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

jslint在javascript中是可选的,但如果您要遵循jshint;标准,则应将(defn- latlngs-within-new-bounds [db a w] (d/q '[:find ?lat :in $ ?a ?w :where [ ?e :location/lat ?lat] [(>= ?lat ?a)] (not [(>= ?lat ?w)])] db a w)) (latlngs-within-new-bounds [[1 :location/lat 1] [2 :location/lat 2] [3 :location/lat 3] [4 :location/lat 4] [4 :location/lat 5]] 2 4) => #{[2] [3]} 放在每个语句的末尾。