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()];