Предимства и недостатки на вериги в JavaScript
Въпреки че веригите съкращават кода,
в повечето случаи въвеждането на променлива
все пак е по-удобно. Сравнете двата примера -
сега въведох променлива elem и мога
да записвам произволен брой атрибути, като
querySelector се извиква само
веднъж:
let elem = document.querySelector('#elem');
elem.value = 'www';
elem.type = 'submit';
А сега не въвеждам нова променлива и затова
трябва да извикам querySelector
два пъти:
document.querySelector('#elem').value = 'www';
document.querySelector('#elem').type = 'submit';
Според мен, този код стана по-сложен, въпреки
че заема с един ред по-малко. Освен
това, ако искам да сменя стойността на id
от 'elem' на някаква друга, ще трябва
да го правя на много места, което не е много удобно.
Има и още един проблем - натоварването на браузъра.
Търсенето на елементи в страницата, което прави
методът querySelector, е доста
бавна операция (и като цяло всяка работа
с елементи на страницата - това е бавна операция
- запомнете това).
В нашия случай, ако използваме
querySelector всеки път, браузърът
ще обработва HTML страницата и ще търси
елемента с зададения id няколко пъти
(няма значение, че id са еднакви - браузърът
ще извърши всички действия няколко пъти), извършвайки
безполезни операции, които могат да забавят
работата на браузъра.
Ако използваме променлива elem
- няма търсене в страницата
(елементът вече е намерен и връзка към него се намира
в променливата).
Даден е следният код:
<img id="image" src="avatar.png" width="300" height="500">
console.log(document.querySelector('#image').src);
console.log(document.querySelector('#image').width);
console.log(document.querySelector('#image').height);
Посочете недостатъците на този код. Поправете ги.