在JavaScript开头开始半冒号的目的是什么?

我注意到很多jQuery插件都以


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

我只是想知道开始的分号是什么意思,以及末尾的空括号是什么。


千巷猫影
浏览 616回答 3
3回答

慕的地10843

如果您在某些“错误”脚本之后添加了该脚本,而该“脚本”不能正确地用分号结束其最后一行,则可以使用分号。在这种情况下,可能会合并两个脚本并导致代码无效。例如,如果要将多个脚本合并到单个响应中。最后的()正在执行该函数。这正在创建一个关闭。可以在此函数的范围内声明私有变量和方法,这些私有变量和方法不能从脚本外部访问。

慕少森

这个构造:(function(){ /* something in here */ })()用于在Javascript中创建新作用域。有关功能范围的更多信息,请参见此处。关于分号,我以前从未见过。我认为串联多个脚本是一种安全措施,因为在某些情况下,分号在文件末尾是可选的。

qq_花开花谢_0

很公平。我相信您可以按照自己的风格编写代码。确实,最佳做法是主观的。您的陈述“一旦知道了何时以分号开始的规则...”,便揭示了为什么总是使用分号是最佳实践。因为那样您就不需要知道这些附加规则,并且希望其他人也都知道。如果我们所有人一直都拥有完善的知识,那么我们可以使用二进制编程,但事实并非如此。最佳实践可以为我们提供帮助。当然,是否选择遵循完全取决于您。
打开App,查看更多内容
随时随地看视频慕课网APP