Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2019, 19:47
Аспирант
Отправить личное сообщение для DarkPhoenix Посмотреть профиль Найти все сообщения от DarkPhoenix
 
Регистрация: 11.05.2019
Сообщений: 30

Переписать функцию в ES6
const timeEveryOneMinute = () => {
	let Data = new Date();
	let Hour = Data.getHours();
	let Minutes = Data.getMinutes();
		console.log("Текущее время: " + Hour + ":" + Minutes + " ");
		setTimeout(timeEveryOneMinute, 1000 * 60);
}
timeEveryOneMinute();


На курсах просят переписать в стиле ES6.
Прошу Гуру форума помочь.
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2019, 20:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

DarkPhoenix,
вы спросите, чего в супе коде не хватает?
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2019, 20:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

DateTimeFormat
DarkPhoenix,
const timeEveryOneMinute = () => {
	const data = new Date(),
	time = new Intl.DateTimeFormat("ru", {
        hour: "2-digit",
        minute: "2-digit"
    }).format(data);
		console.log(`Текущее время: ${time}`);
		setTimeout(timeEveryOneMinute, 1000 * 60);
}
timeEveryOneMinute();

Последний раз редактировалось рони, 19.06.2019 в 11:29.
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2019, 23:11
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Оно и так стиле es6.

А в современном стиле оно как-то так:
import moment from 'moment'
import timer from 'some-super-timer'
import logger from 'some-super-logger'

timer.every(60).run(step => logger.log(
    moment().format("Текущее время: HH:mm")
));
(*код вымышлен, все совпадения случайны )
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 19.06.2019, 01:08
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

https://github.com/airbnb/javascript...ng-conventions
Ответить с цитированием
  #6 (permalink)  
Старый 19.06.2019, 10:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Malleys,
а можно словами или примером, для наглядности, что не так с кодом?

Последний раз редактировалось рони, 19.06.2019 в 10:31.
Ответить с цитированием
  #7 (permalink)  
Старый 19.06.2019, 11:09
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони,
Можно предположить, что let Data и let Time противоречат этому:
Цитата:
Use PascalCase only when naming constructors or classes
Ответить с цитированием
  #8 (permalink)  
Старый 19.06.2019, 11:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Dilettante_Pro,
поправил #3
Ответить с цитированием
  #9 (permalink)  
Старый 19.06.2019, 11:50
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от рони
а можно словами или примером, для наглядности, что не так с кодом?
Обычно в JavaScript имена даются также, как в Java, но поскольку автор может не знать Java, или не понять, почему был упомянут Java, то я привёл руководство от Airbnb.

Я думаю, автору интересна последняя версия JavaScript, описанная в EcmaScript2019...

Конкретно пример автора может быть записан так...
(function timeEveryOneMinute() {
	const date = new Date();
	const hours = String(date.getHours()).padStart(2, "0");
	const minutes = String(date.getMinutes()).padStart(2, "0");

	console.log(`Текущее время: ${hours}:${minutes}`);
	setTimeout(timeEveryOneMinute, 1000 * 60);
})();


Пример рони так...
(function timeEveryOneMinute() {
	const date = new Date();
	const timeOptions = {
		hour: "2-digit",
		minute: "2-digit"
	};
	const time = date.toLocaleTimeString("ru", timeOptions);
	
	console.log(`Текущее время: ${time}`);
	setTimeout(timeEveryOneMinute, 1000 * 60);
})();


Пример Aetae возможен, но требует инструментов трансформации кода, сборки, наличие node.js (использование проприетарных импортов)

Последний раз редактировалось Malleys, 19.06.2019 в 11:55.
Ответить с цитированием
  #10 (permalink)  
Старый 19.06.2019, 14:41
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Poznakomlus
зачем здесь мусор для работы с датами,
неужели replace недостаточно?

console.log(String(new Date()).replace(/^.*?(\d+:\d+).*$/, `Текущее время: $1`));
Poznakomlus, 🙈🙉🙊

Последний раз редактировалось Malleys, 21.06.2019 в 22:31. Причина: Добавил удалённую цитату от Poznakomlus! Предъявил претензии, а затем удалил свои комментарии!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как переписать функцию map es6 под ie11? giwuf Javascript под браузер 7 21.02.2019 15:29
Переписать функцию без jquery Artur_Hopf Общие вопросы Javascript 4 19.02.2019 13:14
Переписать функцию из jQuery в нативный JavaScript MC-XOBAHCK jQuery 8 06.06.2018 16:53
Компактно переписать функцию AlexTrader Общие вопросы Javascript 34 07.03.2017 14:28
Через argument.callee не получается переписать функцию. Jurasmi Общие вопросы Javascript 2 23.03.2011 12:54