在JavaScript开始时开始分号的目的是什么?
问题描述:
可能重复:
What does the leading semicolon in JavaScript libraries do?在JavaScript开始时开始分号的目的是什么?
我已经注意到了很多jQuery插件开始
;(function(){ /* something in here */ })();
我只是想知道什么开始分号是因为,正如以及最后的空括号。
答
如果您在一些不好的脚本之后加上了这个脚本,分号就没有用分号正确关闭它的最后一行。在这种情况下,可能会将两个脚本组合在一起并导致代码无效。例如,如果您将多个脚本合并为单个响应。
()在最后执行该函数。这是创建一个闭包。私有变量和方法可以在这个函数的范围内声明,不能从脚本外部访问。
答
此构造:
(function(){ /* something in here */ })()
用于创建在Javascript中一个新的范围。
More info on function scope here.
关于分号,我从来没有见过它。我认为这是您连接多个脚本时的安全措施,因为在某些情况下,分号在文件末尾是可选的。
+0
这里的例子:https://github.com/js-cookie/js-cookie/blob/latest/src/js.cookie.js –
这与“坏”脚本无关 - 它与分号*风格的书写有关。 – 2011-08-22 09:42:43
恕我直言,这是“坏”脚本。 –
@pst:我没有得到。谨慎阐述? – naveen