O objeto Data possui um método GetDay, que retorna o dia da semana em uma data específica com base na hora local. O valor de retorno é de 0 ~ 6, correspondente ao domingo ~ sábado
getDay0123456
Que dia domingo domingo segunda terça -feira quarta quinta -feira sexta -feira sábado
Ao usar os requisitos relacionados a data, você precisa converter o valor retornado pelo GetDay para o dia da semana, ou seja, que dia da semana é "este dia"? Por exemplo, depois de selecionar o calendário no componente do calendário, retorne a "2014-12-22 Segunda-feira".
Este é um pedaço de código que ainda está sendo executado online
A cópia do código é a seguinte:
/*
* Retorne o dia da semana de acordo com o objeto Data
* @param {data} data
* @return {string} "quarta -feira"
*/
função getchineseweekbydate (data) {
var numWeekday = date.getday ();
if (numWeekday == 0) {
retornar 'domingo';
} else if (numWeekday == 1) {
retornar 'segunda -feira';
} else if (numWeekday == 2) {
retornar 'terça -feira';
} else if (numWeekday == 3) {
retornar 'quarta -feira';
} else if (numWeekday == 4) {
retornar 'quinta -feira';
} else if (numWeekday == 5) {
retornar 'sexta -feira';
} else if (numWeekday == 6) {
retornar 'sábado';
} outro {
retornar '';
}
}
Este código é julgado através de múltiplas se ramos e retorna ao dia da semana. Alguns alunos mencionaram que ele pode ser otimizado usando o Switch.
A cópia do código é a seguinte:
/*
* Retorne o dia da semana de acordo com o objeto Data
* @param {data} data
* @return {string} "quarta -feira"
*/
função getchineseweekbydate (data) {
var numWeekday = date.getday ();
Switch (NumWeekday) {
Caso 0: retornar 'domingo';
Caso 1: retornar 'segunda -feira';
Caso 2: retornar 'terça -feira';
Caso 3: retornar 'quarta -feira';
Caso 4: retornar 'quinta -feira';
Caso 5: retornar 'sexta -feira';
Caso 6: retornar 'sábado';
Padrão: retornar '';
}
}
Comparado com se/else, o código é muito mais simples e mais curto. Alguém fez um código estatístico, menor o tempo que o cérebro pensa. Portanto, você verá várias pessoas e livros que defendem e louvam "códigos curtos" e "o modo de código conciso".
"Coleção de código" menciona o uso do método do driver de tabela para simplificar a programação
Método orientado à tabela-O método orientado à tabela é um modo de programação que pesquisa informações de uma tabela sem usar instruções lógicas (se e switch). De fato, qualquer coisa que possa ser selecionada através de instruções lógicas pode ser selecionada olhando a tabela. Para casos simples, é mais fácil e mais direto usar declarações lógicas. Mas à medida que a cadeia lógica se torna cada vez mais complexa, o método de pesquisa de tabela se torna cada vez mais atraente.
Como mencionado acima, usando tabelas para substituir declarações lógicas, muitos engenheiros de front-end em JS fizeram o possível para eliminar declarações com expressões, pois aprenderam algumas das características dos idiomas funcionais. por exemplo
1. && Substitua o único se
A cópia do código é a seguinte:
if (a == 1) {
$ .ajax (xx)
}
// ->
(a == 1) && $ .ajax (xx)
2. ?: Substitua se/else
A cópia do código é a seguinte:
if (a == 1) {
$ .ajax (xx)
} outro {
$ (yy) .remove ()
}
// ->
(a == 1)? $ .ajax (xx): $ (yy) .remove ()
3. Múltiplo se/else e switch também podem ser substituídos por múltiplos "?:"
A cópia do código é a seguinte:
if (a == 1) {
Alerta (1)
} else if (a == 2) {
Alerta (2)
} else if (a == 3) {
Alerta (3)
} outro {
Alerta (4)
}
// ->
(a == 1)
? Alerta (1): (a == 2)
? Alerta (2): (a == 3)
? Alerta (3): Alerta (4)
Além disso, você também pode usar funções para eliminar recursivamente as instruções enquanto. No começo, fui viciado nesses métodos de escrita, mas depois descobri que não conseguia entender (talvez ainda li menos, e meu cérebro sempre os converteu naturalmente em frases). No final, eu ainda estava acostumado a usar frases.
Vamos tentar substituir a tabela na "Coleção de código" por um objeto JS.
A cópia do código é a seguinte:
/*
* Retorne o dia da semana de acordo com o objeto Data
* @param {data} data
* @return {string} "quarta -feira"
*/
função getchineseweekbydate (data) {
var numWeekday = date.getday ();
var weekobj = {
'0': 'domingo',
'1': 'segunda -feira',
'2': 'terça',
'3': 'quarta -feira',
'4': 'quinta -feira',
'5': 'sexta -feira',
'6': 'Sábado',
};
Retornar WeekObj [NumWeekday] || '';
}
Comparado com o Switch, muito código foi reduzido, mas ainda existem chaves com 0 ~ 6. O método GetDay retorna de 0, assim como o índice JS da matriz, e também começa a partir de 0. Portanto, usar matrizes pode ser simplificado
A cópia do código é a seguinte:
/*
* Retorne o dia da semana de acordo com o objeto Data
* @param {data} data
* @return {string} "quarta -feira"
*/
função getchineseweekbydate (data) {
var numWeekday = date.getday ();
var wearearr = ['domingo', 'segunda -feira', 'terça -feira', 'quarta -feira', 'quinta -feira', 'sexta -feira', 'sábado'];
Retornar WeekArr [NumWeekday] || '';
}