У объекта Date есть метод GetDay, который возвращает день недели в определенную дату на основе местного времени. Возвратное значение составляет от 0 ~ 6, соответствующее воскресенье ~ суббота
GetDay0123456
В какой день в воскресенье в понедельник вторник в среду четверг, пятница, суббота
При использовании требований, связанных с датой, вам необходимо преобразовать стоимость, возвращаемой GetDay в день недели, то есть в какой день недели «этот день»? Например, после выбора календаря в компоненте календаря вернитесь к «2014-12-22 понедельника».
Это кусок кода, который все еще работает в Интернете
Кода -копия выглядит следующим образом:
/*
* Вернуть день недели в соответствии с объектом даты
* @param {date} дата
* @return {String} "Среда"
*/
функция getChineseweekbydate (date) {
var numweekday = date.getday ();
if (numweekday == 0) {
вернуть «воскресенье»;
} else if (numweekday == 1) {
вернуть «понедельник»;
} else if (numweekday == 2) {
возвращение «вторника»;
} else if (numweekday == 3) {
вернуть «среду»;
} else if (numweekday == 4) {
вернуть 'четверг';
} else if (numweekday == 5) {
вернуть 'пятницу';
} else if (numweekday == 6) {
вернуть «субботу»;
} еще {
возвращаться '';
}
}
Этот кодекс осуществляется через несколько ветвей, и возвращается в день недели. Некоторые студенты упомянули, что его можно оптимизировать с помощью коммутатора.
Кода -копия выглядит следующим образом:
/*
* Вернуть день недели в соответствии с объектом даты
* @param {date} дата
* @return {String} "Среда"
*/
функция getChineseweekbydate (date) {
var numweekday = date.getday ();
Switch (numweekday) {
Случай 0: вернуть 'воскресенье';
Случай 1: возврат «понедельник»;
Случай 2: возвращение «вторник»;
Случай 3: возврат «среда»;
Случай 4: возврат «четверг»;
Случай 5: Возврат 'пятница';
Случай 6: возвращение «суббота»;
по умолчанию: return '';
}
}
По сравнению с if/else, код намного проще и короче. Кто -то сделал статистический код, тем короче время, когда мозг думает. Поэтому вы увидите различных людей и книг, которые защищают и хвалят «короткие коды» и «путь краткого кода».
«Сбор кодов» упоминает метод использования драйвера таблицы для упрощения программирования
Метод, управляемый таблицей-метод, управляемый таблицей,-это режим программирования, который ищет информацию из таблицы без использования логических операторов (if и switch). Фактически, все, что может быть выбрано с помощью логических операторов, может быть выбрано, посмотрев таблицу. Для простых случаев легче и проще использовать логические операторы. Но поскольку логическая цепочка становится все более и более сложной, метод поиска таблицы становится все более и более привлекательным.
Как упоминалось выше, используя таблицы для замены логических операторов, многие фронт-инженеры в JS старались изо всех сил, чтобы устранить утверждения с выражениями, поскольку они узнали некоторые характеристики функциональных языков. например
1. && заменить сингл, если
Кода -копия выглядит следующим образом:
if (a == 1) {
$ .ajax (xx)
}
// ->
(a == 1) && $ .ajax (xx)
2.?: Замените, если/иначе
Кода -копия выглядит следующим образом:
if (a == 1) {
$ .ajax (xx)
} еще {
$ (yy) .remove ()
}
// ->
(a == 1)? $ .ajax (xx): $ (yy) .remove ()
3. Несколько IF/else и коммутатор также могут быть заменены на несколько ":"
Кода -копия выглядит следующим образом:
if (a == 1) {
предупреждение (1)
} else if (a == 2) {
предупреждение (2)
} else if (a == 3) {
предупреждение (3)
} еще {
Блюдо (4)
}
// ->
(a == 1)
? предупреждение (1): (a == 2)
? предупреждение (2): (a == 3)
? предупреждение (3): предупреждение (4)
Кроме того, вы также можете использовать функции для рекурсивного устранения для операторов. Сначала я был зависим от этих методов письма, но позже я обнаружил, что не могу этого понять (возможно, я все еще читаю меньше, и мой мозг всегда естественно превращал их в предложения). В конце концов, я все еще привык использовать предложения.
Давайте попробуем заменить таблицу в «Сбор кода» на объект JS.
Кода -копия выглядит следующим образом:
/*
* Вернуть день недели в соответствии с объектом даты
* @param {date} дата
* @return {String} "Среда"
*/
функция getChineseweekbydate (date) {
var numweekday = date.getday ();
var weekObj = {
'0': 'воскресенье',
'1': 'понедельник',
'2': 'вторник',
'3': 'Среда',
'4': 'четверг',
'5': 'пятница',
'6': 'Суббота',
};
return weekObj [numweekday] || '';
}
По сравнению с Switch, много кода было уменьшено, но все еще есть ключи с 0 ~ 6. Метод GetDay возвращается из 0, как и индекс массива JS, а также начинается с 0. Следовательно, с использованием массивов можно упростить
Кода -копия выглядит следующим образом:
/*
* Вернуть день недели в соответствии с объектом даты
* @param {date} дата
* @return {String} "Среда"
*/
функция getChineseweekbydate (date) {
var numweekday = date.getday ();
var weartarar = [«воскресенье», «понедельник», «вторник», «среда», «четверг», «пятница», «суббота»];
Возврат Вейдарр [numweekday] || '';
}