optimization: {
minimizer: [
new UglifyJsPlugin({
sourceMap: true
})
]
},
const customObj = (({ second, third }) => ({ second, third }))(obj);
const obj = {
first: 123,
second: 154,
third: 654,
fourth: 993
};
const customObj = (({ second, third }) => ({ second, third }))(obj);
customObj // { second: 154, third: 654 }
js я вообще не знаю. просто решил попробовать изучать по мере выполнения задачЭто не та задача, с которой стоит начинать изучение JS.
function declOfNum(number, titles) {
cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
// использование: в массиве передавать формы для 1, 4 и 5 «штук»
declOfNum(count, ['найдена', 'найдено', 'найдены']);
srcconst total = 10;
const totalWords = ['упражнения', 'упражнений', 'упражнений'];
const newTotal = 'Составить тренировку из ' + total + ' ' + declOfNum(total, totalWords);
execute()
так-себе, потому, что там много ограничений, в т.ч. на простой цикл. Чем больше стоп-слов, тем скорее код упрётся в лимит итераций, перебирая их. Поэтому стоп-слова лучше проверять на стороне сервера в PHP – проще. И не придётся гонять туда весь словарь нехорошестей. Проще же принять оттуда недлинное название.age_limits
– возрастное ограничение.1 — нет;
2 — 16+;
3 — 18+.
3
lib/defaults.js
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.common['Authorization'] = NEW_TOKEN;
axios.get('https://google.com').then(r => console.log(r));
Array.of()
позволяет привязать контекст, иной, нежели Array
.function Stack(){}
Stack.prototype = Object.create(Array.prototype);
Stack.prototype.last = function(){return this[this.length-1]}; // вернуть последний элемент
const testArr = Array.of.call(Stack, 1, 2, "три!");
.last()
console.log(testArr.last()); // "три!"
0.3 - 0.1 // 0.19999999999999998
x = new Decimal(0.3)
x.minus(0.1) // '0.2'
$('#datePicker').datepicker();
$('#datePicker').datepicker({
dateFormat: "dd.mm.yyyy"
});
const hasCommon = (a, b) => undefined !== a.find(v => b.includes(v))
const tests = [
[[1,11,111], [2,3], false],
[[1,11,111,4,5], [2,3,4], true],
[[2,3,4], [1,11,111,4,5], true],
[[1,11,111,'A',{a:'aaa'}], [2,3,'a',{}], false],
[[1,11,111,undefined], [2,3,undefined], false],
[[1,11,111,2,undefined], [2,3,undefined], true],
];
tests.forEach(t => console.log(t[2] === hasCommon(...t)?'OK':'FAIL', JSON.stringify(t)))
let $some_elem = $('.some_elem'); // 1
$some_elem.addClass('some_class'); // 2
setTimeout(() => alert("Созрели!"), 1000); // 3 отложили
$('.some_class').remove(); // 4
// этот код выполнился до конца и, казалось бы, делать больше нечего.
// ...через секунду сработал alert
setTimeout()
отрабатывает мгновенно-синхронно - его функция отложить личинку на через-секунду. Представьте, что setTimeout пушит функцию и её время в некий невидимый служебный массив движка JS. А движок заглядывает в этот массив по 100 раз в секунду, когда свободен, не занят выполнением кода, и смотрит, «есть чё?», что пора выполнить?setTimeout()
(но никакого alert ещё не случилось) выполняется следующая строка $('.some_class').remove();