【Java Web基础】(十六)JS报错:Uncaught TypeError: date.getHours is not a function

先上报错:

【Java Web基础】(十六)JS报错:Uncaught TypeError: date.getHours is not a function_第1张图片

原本的代码:

function formateDate(date){
    if(!date instanceof Date){
        return ;
    }
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var date = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    month > 10? month:'0' + month;
    date > 10? date:'0' + date;
    hour > 10? hour:'0' + hour;
    minute > 10?minute:'0' + minute;
    second > 10?second:'0' + second;
    console.log(year + '/' + month +'/'+date+' '+hour+':'+minute+':'+second);
}

就是在var date哪一行报的错,一开始我不能理解为什么。
后来发现,我传进来的参数叫date,我在这里又var 了一个date并调用函数,但是,var的级别比传进来的参数的级别要高,所以这里会报这个问题。
本质原因:传进的参数与var的参数重名!

修改后的代码:

即将var的参数更改为另一个名字即可:

function formateDate(date){
    if(!date instanceof Date){
        return ;
    }
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var dates = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    month > 10? month:'0' + month;
    dates > 10? dates:'0' + dates;
    hour > 10? hour:'0' + hour;
    minute > 10?minute:'0' + minute;
    second > 10?second:'0' + second;
    console.log(year + '/' + month +'/'+dates+' '+hour+':'+minute+':'+second);
}

运行结果:
【Java Web基础】(十六)JS报错:Uncaught TypeError: date.getHours is not a function_第2张图片

代码知识点:

if(!date instanceof Date){
        return ;
    }

这个if语句是判断date是否为Date类型,不是的话直接返回,是的话则继续往下执行。

你可能感兴趣的:(Java,Web基础)