JavaScript даги занжирларнинг афзаллик ва камчиликлари

Занжирлар кодни қисқартирса-да, аксарияат ҳолларда ўзгарувчини киритиш анча қулай. Икки мисолни солиштиринг - ҳозир мен elem ўзгарувчисини киритдим ва ҳар қандай микдордаги атрибутларни ёза оламан, бу ҳолда querySelector фақат бир марта чақирилади:

javascriptlet elem = document.querySelector('#elem');
elem.value = 'www';
elem.type  = 'submit';

Энди мен янги ўзгарувчини киритмаганман ва шу сабабли менга querySelector ни икки марта чақиришга тўғри келади:

javascriptdocument.querySelector('#elem').value = 'www';
document.querySelector('#elem').type  = 'submit';

Менингча, бу код қийинлашди, гарчи бир қаторга камроқ жой олса-да. Бундан ташқари, агар мен id нинг қийматини 'elem' дан бошқа бир нарсага ўзгартирмоқчи бўлсам, мен буни кўп жойларда бажаришимга тўғри келади, бу эса жуда қулай эмас.

Яна бир муаммо бор - браузерга юк. querySelector усули бажарадиган саҳифа бўйича элементларни излаш жуда секин амалга оширилади (ва умуман олганда саҳифа элементлари билан ишлаш - бу секин амалга оширилади - буни эслаб қолинг).

Бизнинг ҳолимизда, агар биз ҳар доим querySelector дан фойдалансак, у ҳолда браузер ҳар доим HTML саҳифани қайта ишлар ва берилган id га эга элементни бир неча марта излар (id лар бир хил эканлиги муҳим эмас - браузер барча амалларни бир неча марта бажаради), браузернинг ишлашини секинлаштириши мумкин бўлган бефойда амалларни бажаради.

Агар биз elem ўзгарувчисидан фойдалансак - саҳифа бўйича ҳеч қандай излаш бўлмайди (элемент аллакачо топилган ва унга ишора ўзгарувчида сақланган).

Задание 1

Қуйидаги код берилган:

html<img id="image" src="avatar.png" width="300" height="500">
javascriptconsole.log(document.querySelector('#image').src);
console.log(document.querySelector('#image').width);
console.log(document.querySelector('#image').height);

Бу коднинг камчиликларини кўрсатинг. Уларни тўғриланг.