var a="" 与a=" ",的区别;

 var a="  ";
   var b="";

typeof a      //string
typeof b     //string

 alert(Boolean(a));  //true

 alert(Boolean(b));  //false

切记不要认为a="";与a="  ";(包含空格的)是等价的!!!!

 undefined==null----true  
 undefined===null----false
  undefined==""------false
   null==""----false

JavaScript 从来不会告诉你是否多次声明了同一个变量;遇到这种情况,它只会对后续的声明视而不见(不过它会执行后续声明中的变量初始化)。

如下例子:

 var i=10;
  var i;
  alert(i);  //10

但是如果给后续声明的变量初始化了,它还是会执行的。

 var i=10;
  var i=5;  
  alert(i);  //5

 匿名函数可以用来模仿块级作用域,并避免这个问题。

(function(){


      //这里是块级作用域


})();
原文地址:https://www.cnblogs.com/qianxunpu/p/7692879.html