var a = 1;
var a;
可以这样理解
var a;
a = 1;
a;
那么a为1.反正记住 出现var,那么变量就在上下文的顶部被声明。

解决方案 »

  1.   

    var yyp = "dddd";
      var yyp ;
    你定义两次,后面这个定义没有赋值,那它会用第一个的值。
      

  2.   


    没赋值的, 默认不是 undefined 的吗
      

  3.   

    如果您再次声明了 JavaScript 变量,该变量也不会丢失其原始值。
    var yyp = "dddd";
    var yyp ;
    在以上语句执行后,变量yyp的值仍然是 dddd。在重新声明该变量时,yyp的值不会被重置或清除。
      

  4.   

    不要挑战底层的实现方式不要研究不可能发生的问题
    var yyp = "dddd";
    var yyp ;
    var yyp = 'eee';你不会知道将来浏览器会怎么解释这几个语句
      

  5.   

    多年以后,我回来再回答这个问题:
       所有的 var 声明的变量都会‘前置’,前者都所在作用域的最开头,前置后再进行初始化。