obj.field++;
obj.field += 5;
const variable = obj.field = 10;
const human = {
name: 'Andrew'
};
Мы уже в коде много где использовали это поле как поле, и вдруг понадобилось делать что-то, когда это поле меняется, что проще, сделать сеттер или поменять весь остальной код? addItem = text => {
return axios.post("/task", {
headers: { "Content-Type": "application/json" },
text: text
})
.then(res => {
this.arr.push(res.data.task);
})
.catch(e => console.log(e));
};
describe("STORE", () => {
it("create new task", () => {
const store = new Store();
const text = "test";
expect(store.addItem(text)).resolves.toBe(1);
});
});
var m_top = $('.go').offset().top;
запомнит оффсет только для самого первого элемента найденного по селектору, поэтому и обрабатывается только он.$(document).ready(function(){
var observer = new IntersectionObserver(function(entries){
entries.forEach(function(entry){
if(entry.isIntersecting) {
$(entry.target).addClass('active bounceInLeft');
} else {
$(entry.target).removeClass('active bounceInLeft');
}
});
}, {threshold: 0.1});
$('.go').each(function(){
observer.observe(this);
});
});
function listener(event) {
const target = event.target.closest('.app__item');
target.querySelectorAll('.equalizer').forEach(
elem => elem.style.display = 'block'
);
// так как дальнейшие клики будут гонять бесполезный цикл, то лучше отписаться
target.removeEventListener('click', listener);
}
document.querySelectorAll('.app__item').forEach(
item => item.addEventListener('click', listener)
);
x = delete y.z
можно, так как оператор delete - является выражением и возвращает true или falsex = var y
нельзя, так как var ничего не возвращает, даже undefined не вернет.var arrey = [];
var a = 1;
var b = 2;
arrey[0] = a;
arrey[1] = b;
var arrey = [];
var a = 1;
var b = 2;
arrey.push(a, b);
или так:var a = 1;
var b = 2;
var arrey = [a, b];
let loadScript = (url, callbackScript, elem) => {
let script = document.createElement('script');
script.src = url;
document.getElementsByTagName('body')[0].append(script);
script.onload = function() {
callbackScript(elem); // Как в эту функцию передать elem? elem находится снизу при обходе массива
};
};
App.prototype.initModule = function(array) {
array.forEach(elem => {
loadStyles.call(DATA, DATA[elem].styleURL); // Вот здесь передаю callback
loadScript.call(DATA, DATA[elem].scriptURL, callback, elem);
});
};
const content = document.body.querySelector('.editer');
const htmlTags = content.getElementsByTagName("*");
const navs = []; // здесь let не нужен
for(let i = 0; i < htmlTags.length; i++) {
const htmlTag = htmlTags[i];
const lastNav = navs[navs.length - 1]; // resH2 всегда будет таким (см. комменты ниже)
const lastChildOfLastNav = lastNav && lastNav.children[lastNav.children.length - 1]; // resH3 всегда будет таким
switch(htmlTag.localName) {
case 'h2':
setID(htmlTag, i);
addItem(navs, htmlTag);
break;
case 'h3':
setID(htmlTag, i);
// тот find что у Вас всегда найдет последний элемент если он есть, не зачем гонять лишний цикл
if(lastNav) {
addItem(lastNav.children, htmlTag);
}
break;
case 'h4':
setID(htmlTag, i);
// опять же был лишний цикл ради последнего элемента, да еще и в него вложен такой же
if(lastChildOfLastNav) {
addItem(lastChildOfLastNav.children, htmlTag);
} else if(lastNav) {
addItem(lastNav.children, htmlTag);
}
break;
}
}
function addItem(obj, {innerText: name, id}) {
obj.push({
name,
id,
children: []
});
}
function setID(htmlTag, i) {
htmlTag.setAttribute('id', `nav-${i}`);
}
Есть ли смысл начинать читать её сейчас, или на сегодняшний день она уже слишком устарела?Фундаментальные знания не устаревают никогда, а в данной книге именно фундамент.
насколько я понимаю, написана она опираясь на старый стандартДаже оператор with, который deprecated начиная с es5 можно использовать в самом современном движке js. Каждая новая версия ES лишь дополняет предыдущую, но не отменяет ее, хотя некоторые вещи и становятся нежелательными (вроде использования var после появления let и const), новые вещи основываются на старых (иначе бы babel не работал). Ну а то немногое, что совсем deprecated (вроде оператора with или глобального объекта в качестве this по умолчанию) - как правило плохие практики и в таких книгах почти не освещаются