将函数放入变量后,我应该添加; 吗? 这个代码是对的吗?
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();
}
答案 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]}
放在每个语句的末尾。