关于JavaScript立即函数调用:JavaScript立即函数调用 – 为什么函数周围需要括号?

JavaScript immediate function invocation - why are parenthesis needed around the function?

本问题已经有最佳答案,请猛点这里访问。

为什么需要将函数声明包装在括号中以立即调用? 我很好奇解释器在括在括号中时如何读取立即调用的函数。

我为什么要这样做......

1
2
3
(function() {
   // Logic
 })();

而不是这个......

1
2
3
function() {
   // Logic
 }();


当函数包含在括号中时,它被解析为表达式 - 函数表达式。 否则没有它们会被解析为函数声明。 函数声明需要一个它看到你没有给出的名称,这反过来会导致语法错误。 此外,您不能将()内联应用于函数声明以便调用它。 空括号是语法错误,但非空括号是将与函数分开计算的表达式。