[array[j], array[j+1]] = [array[j+1], array[j]];
разворачивается вarray[j] = array[j+1]
array[j+1] = array[j]
как Js понял, что нужно поменять именно в массиве arr числа местами.
array
это ссылка на arr
, вот и поменял. document.querySelector('.close').addEventListener('click', function(e){
e.stopPropagation()
document.querySelector('.result').insertAdjacentHTML('beforeend', '<div>Close</div>');
});
<span>
{{ productsCount }}
</span>
computed: {
productsCount() {
return this.checkedInput.reduce((acc, i) => { acc+= i.products.length; return acc }, 0)
}
}
.then(({ json }) =>
({ data: {id: json.json[resource].id} })
)
({ json })
- Деструктуризация входных параметров, то есть в качестве аргумента поступает объект, из которого извлекается свойство json в переменную. json.как это переписать в обычную функцию, чтоб там можно было поставить точку останова, или вписать debugger
.then(({ json }) => {
debugger
return { data: { id: json.json[resource].id } } // круглые скобки уже не нужны, так как используется return
})
зачем лишние скобки вокруг аргумента и возврата
return
, то нужно обернуть его в скобки, условно, чтобы движок понимал разницу между телом функции, которое так же открывается через {} скобки и объектом.() => { return {} }
тоже самое что () => ({})
Как переписать короткую функцию в нормальную на javascript
}).then(function(info) {
return { data: { id: info.json.json[resource].id } }
})
что я сделал не так
function func() {
elem.textContent += (Number(elem.dataset.productPrice) + Number(elem.dataset.productAmount))
}
- return Promise.resolve({ user.id, user.username });
+ return Promise.resolve({ id: user.id, name: user.username });
- return Promise.resolve({ user.id, user.username });
+ return Promise.resolve({ "user.id": user.id, "user.username": user.username });
К чему относятся эти «приемы»
Webpack
Npm
что именно мне нужно учить
что делать на фронтенде
.call
или .apply
=
function name() {}
.Array.prototype.last = function() {
return this[this.length-1]
}
// [1,2,3].last()
// 3
метод и свойство массива
Object.defineProperty(Array.prototype, 'last', {
get: function() {
return this[this.length-1]
},
enumerable: false,
configurable: false
})
// [1,2,3].last
// 3
const openPopUp = document.getElementById('open_pop_up');
- id должен быть уникальным в рамках страницы. Не должно быть более одного элемента, с повторяющимся id. В итоге тут будет найден только первый в разметке элемент с таким id. То есть только первая кнопка "заказать" будет работать.const closePopUp = document.getElementById('pop_up_close');
- не существует элемента с таким id. Есть с class.const popUp = document.getElementById('pop_up');
- аналогично предыдущему.<a class="table_box_button" href="#" class="open_pop_up">Заказать</a>
Это где Вы научились два раза один и тот же атрибут объявлять на элементе? Объединить в один. он возвращает дату в формате
MM-DD-YYYY - месяц день год
как-то можно без библиотек поменять на
DD-MM-YYYY
var d = document.querySelector('input[type="date"]')
d.addEventListener('change', function(){
console.log(this.value) // YYYY-MM-DD
const [y, m, d] = this.value.split('-')
console.log(`${d}-${m}-${y}`) // DD-MM-YYYY
})
$('.cart-arrow, main')
какие по Вашему выбираются элементы в этом селекторе?-themeCheckBox.checked = localStorage.getItem('themeCheckBox')
+themeCheckBox.checked = localStorage.getItem('themeCheckBox') === 'true'