messages.send()
:photo — фотография;
video — видеозапись;
audio — аудиозапись;
doc — документ;
wall — запись на стене;
market — товар.
function parseVkLink(link) {
var re = new RegExp('(photo|video|audio|doc|wall|market)(\\d+)_(\\d+)');
var matches = link.match(re);
if(matches) {
return {
type: matches[1],
ownerId: matches[2],
objectId: matches[3],
};
} else {
return false;
}
}
var test = 'https://vk.com/durov?z=photo1_456315566%2Falbum1_00%2Frev';
JSON.stringify( parseVkLink(test) ) // {"type":"photo","ownerId":"1","objectId":"456315566"}
func
в вашем первом варианте «не знает» что у переменной array
есть какое-то там значение. Ведь её, функцию эту, объявили раньше и выше )array
известен на момент, когда заряжают таймер.function myFunc(arr, func) {
arr.forEach( ( ) => {
setTimeout(
func.bind(null, arr), // привязываем к функции аргумент
1000
)
})
}
myFunc([1, 2, 3, 4], (a) => {
console.log("print array after each 1 second", a);
});
jQuery.on()
регистрирует слушателя события клика. В функцию myFunc
при клике передастся аргумент – событие клика.var myEvent = {
target: document.getElementById('button_id'),
// ... ещё куча стандартных свойств
};
myFunc(myEvent);
"Hello!".replace(/(.(?!$))/g,'$1-')
(?!$)
) – заменяется на себя $1
и дефис. function generate_n_passwords($n) {
$result = array();
while($n--) {
array_push( $result, generate_password());
}
return $result;
}
$myFivePasswords = generate_n_passwords(5);
finish_forecast
.finish_forecast_display
это прогнозируемый момент окончания для показа. Исходя из него и текущего времени плавно обновляем индикатор прогресса.finish_forecast_display
обновляем не мгновенно, а раз в фикс. интервал времени (раз в 200 ms) двигаем его в сторону текущего значения finish_forecast
на дельту, пропорциональную расстоянию - чем ближе, тем медленнее. Тут важна регулярность этих интервалов обновления дисплея.C ---> N . . . . . . . . . . . T
total * time_passed / current_progress
N = C + (T - C) / 100
Keys for end-to-end encrypted secret chats are generated by a new instance of DH key exchange, so they are known only to the parties involved and not to the server. To establish the identities of these parties and to ensure that no MitM is in place, it is recommended to compare identicons, generated from hashes of the DH secret chat keys (key visualizations).
Ax + By + C = 0
Или с угловым коэффициентом y = x(-A/B) - (C/B)
Параллельные прямые отличаются значением C
.eval(code)
на console.log(code)