function calculateSelector(element) {
let selector = '';
for(let current = element; current?.nodeType === 1; current = current.parentElement) {
if(current.id) {
selector = `#${current.id}>${selector}`;
break;
}
const tag = current.tagName.toLowerCase();
const classes = Array.from(current.classList, cls => `.${cls}`).join('');
selector = `${tag}${classes}>${selector}`;
}
return selector.slice(0, -1);
}
app.use( // 5
express.static( // 4
path.join( // 3
__dirname, // 1
'public' // 2
)))
<script src="/reglog.js"></script>
npm i
это короткий вариант npm install
npm i name
установит пакет name версии отмеченной тегом latest (тэг по умолчанию)npm i name@tag
установит пакет name версии отмеченной тегом tagnpm i name@5
установит пакет name версии 5.x.x где x.x - последний из 5npm i name@5.3
установит пакет name версии 5.3.x где x - последний из 5.3npm i name@5.3.1
установит пакет name версии 5.3.1--save
или его короткий вариант -S
сохранит зависимость в package.json в секции dependencies, с некоторых пор это поведение по умолчанию при наличии package.json--save-dev
или его короткий вариант -D
сохранит зависимость в package.json в секции devDependenciesvar input1 = document.getElementById("input1");
var input2 = document.getElementById("input2");
var button = document.getElementById("button");
button.onclick = function(){
var result = parseInt(input1.value) + parseInt(input2.value);
document.body.append(result);
}
Собираю проект при помощи GulpGulp ничего собирать не может, так как Gulp - это task runner (запускатель задач если по-русски), собирать может то, что Gulp запускает, например bundler (сборщик) вроде Webpack или Rollup или просто конкатенатор файлов.
Если я подключаю один и тот же модуль npm, к примеру JQuery, к разным файлам, а потом эти файлы подключаю к main.js - будут ли модули из npm дублироваться?зависит от того, чем все таки собираете, если обычная конкатенация файлов - то да, будет дублирование. А если Webpack или Rollup - нет.
Может у него было тяжелое начало, но сейчас, можно ли его считать полноценным?JS тьюринг полный язык и всегда им был. Тьюринг полнота означает, что на нем можно посчитать все что в принципе вычислимо.
Просто в нем даже импорт файла нормально нельзя сделать (даже в css он есть хоть и не полный)...Уже 5 лет как можно, в отличии, например, от C, где отдельные модули до сих пор нужно линковщиком собирать после компиляции. Так что, по Вашему C тоже не полноценный теперь?
Нету многих приколов, фишек и функций, хотя я понимаю что внедрять их поздно, и для браузера он создавался.Хотелось бы конкретики, каких таких "приколов" Вам не хватает? Вот тут ребята открыты к предложениям: https://github.com/tc39/ecma262/blob/master/CONTRI...
function cloneOrCreateDate(date) {
return date instanceof Date ? new Date(date) : new Date();
}
function getMidnightDate(date) {
const d = cloneOrCreateDate(date);
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
d.setMilliseconds(0);
return d;
}
function addDaysToDate(days, date) {
const d = cloneOrCreateDate(date);
d.setDate(d.getDate() + days);
return d;
}
function timeOffset(d1, d2) {
return Math.abs(d1 - d2);
}
setTimeout(() => {
// логика в полночь
}, timeOffset(Date.now(), addDaysToDate(1, getMidnightDate())));