在 JavaScript 的开头使用分号的目的是什么?

可能的复制品:
JavaScript 库中最前面的分号是做什么的?

我注意到很多 jQuery 插件都是以

;(function(){ /* something in here */ })();

我只是想知道开头的分号和结尾的空括号是用来干什么的。

23132 次浏览

分号在那里,以防你包括这个脚本只是在一些’坏’脚本,没有正确关闭它的最后一行分号。在这种情况下,这两个脚本可能会被合并,并导致无效的代码。例如,如果要将多个脚本合并为单个响应。

The () at the end is executing the function. This is creating a closure. Private variables and methods can be declared within the scope of this function that cannot be accessed from outside the script.

这种结构:

(function(){ /* something in here */ })()

用于在 Javascript 中创建新范围。

这里有更多关于函数范围的信息。

Regarding the semicolon, I never seen it before. I think it's a security for when you concatenate several scripts, since semicolons are optional in some cases at the end of the file.