share-qiang

JavaScript获取星期几是很简单的,关键是怎样以最简单的方式来获取,做到最优化

记得一开始学JavaScript时,老师会这样跟我说:

 1 var date = new Date(),
 2     d = date.getDay(),
 3     str = \'今天是星期\';
 4 
 5 if(d == 0){
 6     str += \'日\';
 7 }
 8 else if(d == 1){
 9     str += \'一\';
10 }
11 else if(d == 2){
12     str += \'二\';
13 }
14 else if(d == 3){
15     str += \'三\';
16 }
17 else if(d == 4){
18     str += \'四\';
19 }
20 else if(d == 5){
21     str += \'五\';
22 }
23 else if(d == 6){
24     str += \'六\';
25 }
26 
27 alert(str);

 

而过了一段时间老师又来了个更好的方法:

 1 var date = new Date(),
 2     d = date.getDay(),
 3     str = \'今天是星期\';
 4 switch(d) {
 5     case 0:
 6         str += \'日\';
 7         break;
 8     case 1:
 9         str += \'一\';
10         break;
11     case 2:
12         str += \'二\';
13         break;
14     case 3:
15         str += \'三\';
16         break;
17     case 4:
18         str += \'四\';
19         break;
20     case 5:
21         str += \'五\';
22         break;
23     case 6:
24         str += \'六\';
25         break;
26 }
27 
28 alert(str);


可能之后有一段时间自己抓抓脑袋想着,这么多if、case、break、还有str......等等重复出现的"单词",就不能简单点吗?学了数组及其方法之后,咦?下面这样也可以啊:

1 var date = new Date(),
2     d = date.getDay(),
3     str = \'今天是星期\',
4     arr = [\'日\',\'一\',\'二\',\'三\',\'四\',\'五\',\'六\'];
5     str += arr[d];
6 
7 alert(str);

 

或者更简单点的:

 1 var str = \'今天是星期\' + [\'日\',\'一\',\'二\',\'三\',\'四\',\'五\',\'六\'][new Date().getDay()];

 

其实字符串也可以的:

 1 var str = \'今天是星期\' + \'日一二三四五六\'.charAt(new Date().getDay());

或者:

 1 var str = \'今天是星期\' + \'日一二三四五六\'[new Date().getDay()];

 

分类:

技术点:

相关文章: