Barumandivu nuqsonhoi zanjirho dar JavaScript
Гарчанде ki zanjirho kод-ro кӯтоҳ мекунанд,
дар аксари ҳолатҳо ворид кардани тағирёбанда
ҳамоно роҳаттар аст. Ду мисолро муқоиса кунед -
ҳоло ман тағирёбандаи 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);
Барои ин код нуқсонҳоро нишон диҳед. Онҳоро ислоҳ кунед.