我要不要加一个;将函数放入变量之后

Should I add a ; after putting a function into a variable?

本文关键字:函数 之后 变量 一个 要不要 我要      更新时间:2023-09-26

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

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

您应该添加分号来防止这种边缘情况:

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

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

在过去,当构建过程将多个JavaScript文件连接并最小化在一起时,一个文件以函数赋值结束,如var foo = function(){ ... },没有分号,下一个文件以基于闭包的代码开始,如(function(){ ... })(window);

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

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

在大多数情况下,这取决于你和你喜欢的样式

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