setTimeout( ()=>{...}, 0)
:var promise = new Promise( function (ok, fail) {
setTimeout( function() {
console.log('1');
ok();
}, 0);
});
// Здесь функция обещания ещё не выполнена.
console.log('2');
promise.then(function () {
console.log('3');
});
// 2 1 3
var promise = Promise.resolve( value);
01234567890123
Widget with id
..|=>.......^
var str = "Widget with id";
alert( str.indexOf("Widget") );
// 0 – прямо с нулевой позиции найдено совпадение
alert( str.indexOf("id") );
// 1 – находится первое же совпадение, после "W" идёт "id":
// 01234567890123
// Widget with id
// .^............
alert( str.indexOf("widget") ); // –1 значит «не найдено». W не равно w
var sqlDT = "2014-09-12 00:00:00";
var BD = new Date( sqlDT.replace(' ','T'));
var Now = new Date();
BD.setMinutes( BD.getMinutes() + Now.getTimezoneOffset()); // в UTC
if( BD.getMonth() === Now.getUTCMonth()
&& BD.getDate() === Now.getUTCDate()
) {
// ура! День рождения!
}
var showSE = function( isSuccess, el) {
el.parentNode.classList.remove('error');
el.parentNode.classList.add('success');
el.nextElementSibling.InnerHTML = isSuccess ? "" : el.dataset.error;
}
var showError = showSE.bind(null, false);
var showSuccess = showSE.bind(null, true);
var AllUsers = {
777: {id: 777, name: "", email: ""},
123: {id: 123, name: "", email: ""},
}
function AddUser(name, email, id) {
AllUsers[ id] = {
id: id,
name: name,
email: email
}
}
var userId = 123, userEmail = "zuk@facebook.com";
AllUsers[ userId].email = userEmail;
$('.my_plus').click(function() {
var input = $(this).parent().find('.quant');
input = input.val(
(parseFloat(input.val()) + 1.22).toFixed(2)
);
input.change();
return false;
});
var observer = new MutationObserver( function(mutations) {
mutations.forEach(function(mutationRecord) {
console.log('стиль изменён');
});
});
var target = document.getElementById('flash-messages');
observer.observe(target, { attributes : true, attributeFilter : ['style'] });
<audio crossorigin="anonymous" src="..." autoplay loop></audio>
vk.com/404.php?...