为什么这个JavaScript语句以a开头;

为什么这个JavaScript语句以a开头;,javascript,Javascript,这看起来是无关的,但它必须做些什么 参考: ;(函数($){ //剪断 }); $(函数(){ //剪断 }); })(jQuery); 这是为了确保以前加载的代码没有以分号终止的代码正确终止,否则会导致错误。你可以说它使代码更能容忍其他人的bug 更新:我对此进行了测试,至少在当前的Chrome和Firefox中,前一条语句是否仍然打开没有区别,所以分号对这一点没有影响。想法:对于非常旧的浏览器来说,这可能仍然是一个问题,但我认为这只是一个我没有验证过的想法。可能是重复的,而且是无关的。在本

这看起来是无关的,但它必须做些什么

参考:


;(函数($){
//剪断
});
$(函数(){
//剪断
});
})(jQuery);

这是为了确保以前加载的代码没有以分号终止的代码正确终止,否则会导致错误。你可以说它使代码更能容忍其他人的bug


更新:我对此进行了测试,至少在当前的Chrome和Firefox中,前一条语句是否仍然打开没有区别,所以分号对这一点没有影响。想法:对于非常旧的浏览器来说,这可能仍然是一个问题,但我认为这只是一个我没有验证过的想法。

可能是重复的,而且是无关的。在本例中,它实际上是无用的,但在独立脚本中,它用于防止由于分号插入而在连接过程中出错。当脚本位于HTML文档中时,它在这里没有任何用途。以前的脚本不会影响此脚本。这可能是从其他地方粘贴的副本,也可能是疏忽。这在任何浏览器中都不是问题。以分号结尾的表达式始终是可选的,并且单独的脚本从未以这种方式相互作用。(前导分号仅用于防止使用外部工具缩小或连接脚本时可能出现的问题。)它取决于前面代码的上下文。变量t;t=22\n(function(){})(5)在没有“前导”半…@Juhana-no的情况下中断,这是每个浏览器的问题;开始部分类似于函数调用,因此如果上面最后一个表达式泄漏了结果,则开始部分将阻止分号插入,并尝试将尾部表达式作为函数调用。@Dandav这是一个很好的观点——但它仍然是一个单独的脚本,上一个脚本不会像那样“泄漏”到下一个脚本(否则,您可以执行类似于
var a=“Hello world”
)的操作。
<script type="text/javascript" charset="utf-8">
    ;(function($) {
         //snip 
      });

      $(function() {
          //snip 
      });
    })(jQuery);
  </script>