为什么最好放一个;在函数定义的末尾。

例如

var tony = function () {
   console.log("hello there");
};

优于:
var tony = function () {
   console.log("hello there");
}

最佳答案

TL; DR:如果不使用分号,则根据其后的代码,您的函数表达式可以变成立即调用的函数表达式。

自动分号插入很麻烦。您不应该依赖它:

var tony = function () {
   console.log("hello there"); // Hint: this doesn't get executed;
};
(function() {
  /* do nothing */
}());

与:
var tony = function () {
   console.log("hello there"); // Hint: this gets executed
}
(function() {
  /* do nothing */
}());

在第二个(错误的)示例中,不会插入分号,因为它后面的代码很有意义。因此,您期望分配给tony的匿名函数会立即与其他东西一起作为参数调用,并且tony被分配给您期望为tony的返回值,这实际上并不是您想要的。

关于javascript - 推杆;在函数定义的末尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20048093/

10-11 05:40