【问题标题】:Why need to use semicolon before defining a function? [duplicate]为什么需要在定义函数之前使用分号? [复制]
【发布时间】:2013-05-01 13:59:02
【问题描述】:

我在一些 jQuery 插件源代码中的函数开头看到了一些奇怪的;,如下所示:

;(function ($) {.....

有人可以解释为什么他们需要在这种情况下使用; 吗?

【问题讨论】:

  • 这是因为有些人只是不关心他们编写的代码的质量。分号允许他们在代码中添加新内容,而无需关注之前的内容。
  • @lan 完成。标记它:)

标签: javascript jquery jquery-plugins


【解决方案1】:

当该文件中当前存在的代码末尾不包含; 时,此分号将帮助您将新代码正确连接到文件中。

例如:

(function() {

})()  // <--- No semicolon

//  Added semicolon to prevent unexpected laziness result from previous code    
;(function ($) {

})();

如果没有分号,第二个() 会被解释为函数调用,并会尝试调用第一个函数的返回结果

【讨论】:

  • 我认为这不是语法错误。这是为了防止第二个脚本调用第一个脚本。 () 调用了一个函数,这正是第二个脚本的样子
  • 本例中如果没有分号会有什么后果??
【解决方案2】:

这只是为了确保 terminate 之前的任何指令。

函数调用之前的分号是一个安全网 可能无法关闭的串联脚本和/或其他插件 正确。

https://github.com/shichuan/javascript-patterns/blob/master/jquery-plugin-patterns/extend.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    相关资源
    最近更新 更多