Maison > interface Web > js tutoriel > Guide d'utilisation de la méthode getDay de l'objet Date dans les compétences javascript_javascript

Guide d'utilisation de la méthode getDay de l'objet Date dans les compétences javascript_javascript

WBOY
Libérer: 2016-05-16 16:25:26
original
2084 Les gens l'ont consulté

L'objet Date possède une méthode getDay, qui renvoie le jour de la semaine à une date spécifique en fonction de l'heure locale. La valeur de retour va de 0 à 6, correspondant respectivement du dimanche au samedi

getDay 0 1 2 3 4 5 6
Jour de la semaine dimanche lundi mardi mercredi jeudi vendredi samedi

Lorsque vous utilisez des exigences liées à la date, vous devez convertir la valeur renvoyée par getDay en un jour de la semaine, c'est-à-dire quel jour de la semaine est « ce jour » ? Par exemple, la sélection d'un calendrier dans le composant calendrier renvoie « 2014-12-22 Monday ».

Il s'agit d'un morceau de code qui fonctionne toujours en ligne

Copier le code Le code est le suivant :

/*
* Renvoie le jour de la semaine en fonction de l'objet Date
* @param {Date} date
* @return {String} "Mercredi"
*/
fonction getChineseWeekByDate(date) {
var numWeekDay = date.getDay();
Si (numWeekDay == 0) {
         renvoyer « dimanche » ;
} sinon if (numWeekDay == 1) {
         renvoie « lundi » ;
} sinon if (numWeekDay == 2) {
         renvoyer « mardi » ;
} sinon if (numWeekDay == 3) {
         renvoyer « mercredi » ;
} sinon if (numWeekDay == 4) {
         renvoyer « jeudi » ;
} sinon if (numWeekDay == 5) {
         renvoyer « vendredi » ;
} sinon if (numWeekDay == 6) {
         renvoyer « samedi » ;
} autre {
         retourner '';
>
>

Ce code est jugé par plusieurs branches if else et renvoie le jour de la semaine. Certains étudiants ont mentionné qu'il peut être optimisé à l'aide de switch

.

Copier le code Le code est le suivant :

/*
* Renvoie le jour de la semaine en fonction de l'objet Date
* @param {Date} date
* @return {String} "Mercredi"
*/
fonction getChineseWeekByDate(date) {
var numWeekDay = date.getDay();
changer (numWeekDay) {
cas 0 : retour 'Dimanche' ;
          cas 1 : renvoyer « lundi » ;
          cas 2 : renvoyer « mardi » ;
cas 3 : retour 'mercredi' ;
cas 4 : retourner 'Jeudi';
cas 5 : retourner 'vendredi' ;
cas 6 : retourner 'Samedi';
            par défaut : retourner '';
>
>

Par rapport à if/else, le code est beaucoup plus simple, plus court et plus clair. Quelqu'un a réalisé des statistiques selon lesquelles plus le code est court, plus le temps de réflexion du cerveau est court. Par conséquent, vous verrez diverses personnes et livres préconisant et louant les « codes courts » tels que « La beauté des codes courts » et « Comment concis le code ».

"Code Encyclopedia" mentionne l'utilisation d'une méthode basée sur des tables pour simplifier la programmation

Méthode basée sur les tables — La méthode basée sur les tables est un modèle de programmation (schéma) qui recherche des informations dans les tables sans utiliser d'instructions logiques (if et switch). En fait, tout ce qui peut être sélectionné via des instructions logiques peut être sélectionné via une recherche dans une table. Pour les cas simples, il est plus simple et plus direct d’utiliser des instructions logiques. Mais à mesure que la chaîne logique devient de plus en plus complexe, la méthode des tables de correspondance devient de plus en plus attractive.

Comme mentionné ci-dessus, les tableaux sont utilisés pour remplacer les instructions logiques. De nombreux ingénieurs front-end en JS ont fait de leur mieux pour éliminer les instructions contenant des expressions car ils comprenaient certaines fonctionnalités des langages fonctionnels. Par exemple

1. && remplace le simple si

Copier le code Le code est le suivant :

si (a == 1) {
$.ajax(xx)
>
// --->
(a == 1) && $.ajax(xx)

2. ? : remplacer if/else

Copier le code Le code est le suivant :

si (a == 1) {
$.ajax(xx)
} autre {
$(aa).remove()
>
// --->
(a == 1) ? $.ajax(xx) : $(yy).remove()

3. Plusieurs if/else et switch peuvent également être remplacés par plusieurs "?:"

Copier le code Le code est le suivant :

si (a == 1) {
alerte(1)
} sinon si (a == 2) {
alerte(2)
} sinon si (a == 3) {
alerte(3)
} autre {
alerte(4)
>
// --->
(a == 1)
? alerte(1) : (a == 2)
? alerte(2) : (a == 3)
? alerte(3) : alerte(4)

De plus, vous pouvez également utiliser la récursion de fonction pour éliminer les instructions for/while. J'étais accro à ces méthodes d'écriture au début, mais plus tard j'ai découvert que je ne les comprenais plus (peut-être que je les lis encore moins, le cerveau les convertit toujours naturellement en phrases), mais au final je me suis habitué à utiliser des phrases .

Essayons de remplacer la table mentionnée dans "Code Encyclopedia" par un objet JS

Copier le code Le code est le suivant :

/*
* Renvoie le jour de la semaine en fonction de l'objet Date
* @param {Date} date
* @return {String} "Mercredi"
*/
fonction getChineseWeekByDate(date) {
var numWeekDay = date.getDay();
var semaineObj = {
         '0' : 'dimanche',
« 1 » : « lundi »,
'2' : 'mardi',
'3' : 'mercredi',
'4' : 'jeudi',
« 5 » : « vendredi »,
« 6 » : « samedi »,
};
Retour weekObj[numWeekDay] || >

Par rapport au switch, beaucoup de code a été réduit, mais il reste toujours les touches 0~6. La valeur renvoyée par la méthode getDay commence à 0, tout comme l'index du tableau JS. Par conséquent, cela peut être simplifié en utilisant un tableau

Copier le code Le code est le suivant :
/*
* Renvoie le jour de la semaine en fonction de l'objet Date
* @param {Date} date
* @return {String} "Mercredi"
*/
fonction getChineseWeekByDate(date) {
var numWeekDay = date.getDay();
var weekArr = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
Retour weekArr[numWeekDay] || >


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal