宝哥软件园

javascript中日期对象getDay方法使用指南

编辑:宝哥软件园 来源:互联网 时间:2021-10-16

Date对象有一个getDay方法,它根据本地时间返回特定日期的一周中的某一天。返回值范围从0到6,分别对应周日到周六。

今天是星期几?周日周一周二周三周四周五周六?

使用与日期相关的要求时,需要将getDay返回的值转换为一周中的某一天,即一周中的哪一天是“这一天”?例如,在日历组件中选择日历后,将返回“2014年12月22日星期一”。

这是段依然在网上运行的代码。

复制代码如下:/**根据Date对象* @ param { Date } Date * @ return { string } '星期三' */函数getchineseweekday(Date){ varnum weekday=Date . getday();if(NumWeekDay==0){ return ' Sunday ';} else if(NumWeekDay==1){返回'星期一';} else if (numWeekDay==2) {return '星期二';} else if (numWeekDay==3) {return '星期三';} else if (numWeekDay==4) {return '星期四';} else if(numWeekDay==5){ return ' Friday ';} else if (numWeekDay==6) {return '星期六';} else { return“”;}}

该代码由几个if else分支判断,并返回星期几。有同学提到可以通过switch进行优化。

复制代码如下:/**根据Date对象* @ param { Date } Date * @ return { string } '星期三' */函数getchineseweekday(Date){ varnum weekday=Date . getday();Switch (num weekday) {case 0:返回‘Sunday’;案例1:返回'星期一';2:返回‘星期二’;病例3:返回‘星期三’;病例4:返回‘星期四’;病例5:返回‘星期五’;病例6:返回‘星期六’;default:返回“”;}}

与if/else相比,代码更短、更清晰。某人做的统计代码越短,大脑的思考时间就越短。因此,你会看到各种提倡和赞美“短代码”的人和书,如《短码之美》、《代码简洁之道》等。

003010提到了使用表驱动的方法来简化编程。

表驱动方法—表驱动方法是一种编程方案,它不使用逻辑语句(if和switch)从表中查找信息。事实上,任何可以通过逻辑语句选择的东西都可以通过查表来选择。对于简单的情况,使用逻辑语句更容易、更直接。然而,随着逻辑链变得越来越复杂,查找表方法变得越来越有吸引力。

如上所述,使用表而不是逻辑语句,JS中的许多前端工程师已经尽力用表达式消除语句,因为他们理解函数语言的一些特性。例如

1.更换单个if。

复制代码如下:IF (a==1) {$。Ajax(xx)}///-(a==1)$。Ajax (xx)。

2.3360取代if/else。

复制代码如下:IF (a==1) {$。Ajax(xx)else { $(YY)。remove ()}//-(a==1)?$.ajax(xx) : $(yy)。移除()

3.多重if/else和switch也可以使用多重"?3360英寸的替代品。

复制代码如下: if(a==1){ alert(1)} else if(a==2){ alert(2)} else if(a==3){ alert(3)} else { alert(4)}///-(a==1)。alert(1) : (a==2)?alert(2) : (a==3)?警报(3) :警报(4)

此外,还可以使用函数递归来消除for/while语句。刚开始对这些写作方法上瘾,后来发现看不懂(可能还是读书少,脑子总是自然转换成句子),最后习惯了用句子。

对于103010中提到的表,让我们尝试用JS对象替换它。

复制代码如下:/**根据Date对象* @ param { Date } Date * @ return { string } '星期三' */函数getchineseweekday(Date){ varnum weekday=Date . getday();Var weekObj={'0': '星期日',' 1': '星期一',' 2': '星期二',' 3': '星期三',' 4': '星期四',' 5': '星期五。return WeekObj[NumWeekDay]| | ' ';}

与switch相比,减少了很多代码,但有0~6个字符的按键。GetDay方法从0开始返回,就像JS数组索引一样。因此,使用数组可以简化。

复制代码代码如下:/** 根据日期对象返回星期几* @参数{ Date }日期* @返回{ String } '星期三*/函数getChineseWeekByDate(date){ var numWeekDay=date。getday();var weekArr=['周日', '周一','周二','周三','周四','周五','周六'];返回WeekArr[NumWeekDay]| | ' ';}

更多资讯
游戏推荐
更多+