timeв начало команды curl time curl ...(параметры)...> time sleep 5
________________________________________________________
Executed in 5.01 secs fish external
usr time 1.19 millis 0.13 millis 1.07 millis
sys time 3.55 millis 1.20 millis 2.35 millis var cnt = 3;
var num = 8;
console.log(Array.from({ length: cnt }).map(() => num).join` + `);.map(() => num) писать .fill(num)Array.from({ length: cnt }) можно писать так new Array(cnt)var cnt = 3;
var num = 8;
console.log(new Array(cnt).fill(num).join` + `); 
/* #000 - это черные выделеные дни */
.cell_wrapper.cal_date.current.isSelected:not(:is(.isSelected ~ &)) {
color: #fff;
background: #000;
}
/* #888888 - это серые выделеные дни */
.cell_wrapper.cal_date.current.isSelected ~ .isSelected{
color: #fff;
background: #888888;
}
/* #000 - это черные выделеные дни */
.cell_wrapper.cal_date.current.isSelected:not(:has( ~ .isSelected)) {
color: #fff;
background: #000;
}Но сам скрипт календаря - кривой!
let date = new Date();
date.setDate(date.getDate()-121); // установим дату в текущую минус 121 день
console.log(date);let ts = Date.now(); // Количество мс, прошедших с 1 января 1970г.
ts-=121*24*3600*1000; // Вычтем 121 день помножим на 24 часа, помножим на 3600 сек/час, помножим на 1000 мс/сек
let date = new Date(ts); // Создадим новую дату
console.log(date);let date = new Date('2022-04-13T14:43:00Z');
let months = (Date.now() - date.getTime()) / (30*24*3600*1000);
console.log(`C момента 2022-04-13 прошло ${months.toFixed(1)} месяцев`);let month;
month = 6.7343423;
month = Math.round(month * 2)/2;
console.log(month); // => 6.5
month = 6.8343423;
month = Math.round(month * 2)/2;
console.log(month); // => 7 // Пусть, список будет в строке разделенной вертикальной чертой
"contacts|goods|gallery|reviews|screen".split`|`
// Находим каждый элемент
.map(data=>document.querySelector(`.blocks__item[data-item="${data}"]`))
// Вешаем на элементы событие mouseenter
.forEach(el=>el.addEventListener('mouseenter',e=>{
// Класс активного элемента надо удалить только у активного элемента
document.querySelector`.blocks__item.blocks__item--active`.classList.remove`blocks__item--active`;
// А элементу, вызвавшему это событие надо добавить класс активности
e.target.classList.add`blocks__item--active`;
// Еще где-то какому-то элементу присвоим класс, частично формирующийся из атрибута элемента события
document.querySelector`.blocks__phone-bg`.className = `blocks__phone-bg blocks__phone-bg--${e.target.getAttribute`data-item`}`;
});
// Вот и все! 'click', 'right-click' и 'double-click'.tray.setContextMenu(menu) - устанавливает переданное в параметре menu меню как контекстное меню иконки трея. tray.popUpContextMenu([menu, position]) открывает установленное либо переданное в параметре menu контекстное меню трея. Оба параметра menu и position не обязательны tray.closeContextMenu() закрывает открытое меню трея.icon. { const idgen=Object.assign(()=>idgen.gen.next().value,
{val:0,gen:(function*(){while(1)yield ++idgen.val})()});
Object.defineProperty(window,'uniqueId',{get:()=>idgen()}); }
// Проверочка
for( let i = 0; i < 3; i ++ ) console.log(uniqueId); // 1,2,3;console.log('инфа по браузеру',navigator.userAgentData);
console.log('батарея',await navigator.getBattery());
console.log('местоположение',await navigator.geolocation.getCurrentPosition())
console.log('ip', await fetch('https://ipinfo.io',{credentials:'omit'}).then(res=>res.json())); document.body.addEventListener('touchstart',
event=>{
event.preventDefault();
event.stopPropagation();
Nunenune(event);
}
);pointerdown и проч.