为什么需要将函数声明包装在括号中以立即调用?我很好奇解释器在括在括号中时如何读取立即调用的函数.
即
我为什么要这样做......
(function() {
// Logic
})();
Run Code Online (Sandbox Code Playgroud)
而不是这个......
function() {
// Logic
}();
Run Code Online (Sandbox Code Playgroud)
当函数包含在括号中时,它被解析为表达式 - 函数表达式.否则没有它们会被解析为函数声明.函数声明需要一个它看到你没有给出的名称,这反过来会导致语法错误.此外,您不能将()内联应用于函数声明以便调用它.空括号是语法错误,但非空括号是将与函数分开计算的表达式.