js日期出现了undefined异常

你好,我想让我的html页面显示当前的日期,结果只显示了年和月,日、小时、分、秒出现了undefined,这是为什么呢?
这是js代码,前面的前缀我省了。

        var time=new Date();
        var year=time.getFullYear();
        var month=time.getMonth()+1;
        var day=time.getDate();
        var hour=time.getHours();
        var minute=time.getMinutes();
        var second=time.getSeconds();
        if(month<10) var month2="0"+month;
        if(day<10)  var day2="0"+day;
        if(hour<10)  var hour2="0"+hour;
        if(minute<10)  var minute2="0"+minute;
        if(second<10)  var second2="0"+second;
        var ef=year+"/"+month2+"/"+day2+" "+hour2+":"+minute2+":"+second2;
        alert(ef);

异常的图片如图

img


这是为什么呢?怎么改正呢。

没有定义,month2这些要放在if外面先定义 ,或者直接改变month这些变量就可以,如下面

var time=new Date();
        var year=time.getFullYear();
        var month=time.getMonth()+1;
        var day=time.getDate();
        var hour=time.getHours();
        var minute=time.getMinutes();
        var second=time.getSeconds();
        if(month<10) month="0"+month;
        if(day<10)  day="0"+day;
        if(hour<10)  hour="0"+hour;
        if(minute<10)  minute="0"+minute;
        if(second<10)  second="0"+second;
        var ef=year+"/"+month+"/"+day+" "+hour+":"+minute+":"+second;
        alert(ef);
 

alert(ef);前面没有ef定义

日、小时、分、秒变量定义之后在赋值


var time=new Date();
        var year=time.getFullYear();
        var month=time.getMonth()+1;
        var day=time.getDate();
        var hour=time.getHours();
        var minute=time.getMinutes();
        var second=time.getSeconds();
        if(month<10)  month="0"+month;
        if(day<10)   day="0"+day;
        if(hour<10)  hour="0"+hour;
        if(minute<10)   minute="0"+minute;
        if(second<10)  second="0"+second;
        var ef=year+"/"+month+"/"+day+" "+hour+":"+minute+":"+second;
        alert(ef);

变量提升 你重复赋值了