在函数前面加分号——;(function(){})()

;(function($,undefined){

  //代码...

})()

  我们写代码每句的结束可以省略分号,但是分析器的自动分号插入,大多数场景下ASI会正确插入分号,不会产生错误。但ASI的分号插入规则非常复杂且很难记住,因此《编写可维护的Javascript》一书的作者推荐大家不要省略分号。其实很多新手都不会省略。

  一:这里的分号的作用:防止多文件集成成一个文件后,高压缩出现语法错误。

  二:js里面没有块级作用域,因而用(function(){})()闭包模拟作用域块,可以对变量起保护作用。

  三:undefined可以是1.只声明变量未初始化,如var a ; 2. 尚未定义的变量 如alert(b);函数中查找变量先搜寻内部变量,至最外层,undefined是搜索到全局环境时候仍未找到,我们都知道window是全局变量。在google的控制台输入window.undefined;也可看出undefined是window的一个属性。而这里将undefined声明为局部变量,当函数内要将变量与undefined比较的时候,就不需要搜索window,从而提升了性能。

   undefined派生于null,当输入undefined==null时,结果为true.一般不会定义变量为undefined,要声明空对象,可以 var a = null;

原文地址:https://www.cnblogs.com/chuyu/p/3130916.html