ffmpeg \
-ss 15 \ # пропустить 15 секунд от начала
-i Source.mp4 \ # имя исходного файла
-t 30 \ # продолжительность 30 сек.
-c copy \ # кодек "копия" - не перекодировать
Result.mp4 # что получится - в этот файлтолько удалите все комментарии – после слешей должен сразу быть перенос строки. Этот вариант, пожалуй, самый быстрый из возможных. Вопрос если разница в таких записях?
resolve(script) передаст дальше по цепочке этот script (который никому не нужен, похоже).script.onload = resolve передаст по цепочке объект события (тоже всем по барабану)почему такой ее вызов дает ошибку script.onload = resolve(script);потому, что нужна функция, которую вызовут позже, а не мгновенный результат её выполнения. const currentYear = new Date().getFullYear();
const years = [];
for (let year = currentYear - 5; year <= currentYear + 5; year++) {
years.push(year);
}
years // [2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027]for (let i = 0; i < 5; i++) {
let newYear = year; // <--- тут ошибка
firstYears.push((newYear -= 1));
} obj — чего ожидаете от weakMap(null)?weakMap какие-то припрятанные данные. Нет объекта — нет данных. function UpdateName() { // ... } то можно так:this[v].call(null);let или const, то хорошего варианта нет. eval(), но это крайне нежелательно:eval(`${v}.call(null)`); — т.е. составляется текстовая строка JS-кода, которая исполняется.const methods = {
UpdateName: () => { /* ... */ },
UpdateAddress: () => { /* ... */ },
};
methods[v].call(null); thisArg для функции.pop() будет вызываться в контексте начального массива nums — последовательно выдирая из него последний из оставшихся элементов: 3, 2, 1nums, соответственно, на каждой итерации будет становиться на 1 элемент короче.[...nums] нужна только ради его первоначальной длины, чтобы вызвать дальнейшую магию правильное число раз. 




document.querySelector('input').addEventListener('input', e => {
const { value } = e.target;
const num = Number(value);
const isValid = !isNaN(num) &&
num <= 60 &&
num >= -60;
// что-то делаем с валидным / невалидным
if (isValid) {
// мы молодцы, сирену можно выключить
} else {
// включаем мигалку и сирены, подсвечиваем красным
}
}); setInterval() первым аргументом надо передать функцию (он сам вызовет её потом),"строку" или число 42.(param) => () => {
console.log("Выхлоп!" + param);
}Две стрелочки, значит, тут две функции. Одна вокруг второй. Первая, та, что снаружи, принимает аргументом param, и возвращает вторую функцию () => { console.log("Выхлоп!" + param); } Причём вернувшаяся функция «запомнила» значение param внешней обёртки и будет его использовать. Это обёртывание называется «Замыкание» или "closure".function(){ return function() {}; }((param) => () => console.log(param))(6) – этот вызов внешней с аргументом 6 даст результатом внутреннюю функцию, которая запомнила значение param. И мы имеем на руках внутреннюю функцию.((param) => () => console.log(param))(6)()setInterval() первым аргументом надо передать не конечный результат, а функцию — её вызовут через некоторое время, не сразу. Тут передают внутреннюю функцию. Поэтому скобки всего одни: с одними скобками получаем внутреннюю функцию.delay() создаёт обёртку над функцией, чтобы выполнить её через какое-то время. При этом старается ничего не сломать – передать все аргументы и сохранить контекст (this) вызова. На всякий случай.f.apply(context, ...) (документация) – вызовет копию функции f() с привязанным к ней контекстом context. Тут так сделали, чтобы наверняка передать контекст. Тот this, что был при вызове delay(), благополучно окажется и у вызываемой через паузу функции.delay() – и вспоминайте про this у функций. function delay(f, ms = 500) {
return function d() {
setTimeout(() => f.apply(this, arguments), ms);
};
}
// функция для испытаний, будет выводить this
function testThis(msg) {console.log(msg, this);}
// Test 1
delay(testThis)("Test1"); // Window
// Test 2
const obj = {
title: 'test 2',
method: delay(testThis),
};
obj.method("Test 2"); // obj {title: 'test 2', method: d()}
// Test 3
const test3 = delay(testThis).bind({title: 'test 3'});
test3("Test 3"); // Object {title: 'test 3'}
// Test 4
const maker = delay(testThis);
const M = new maker('Test 4'); // Object { }