⊗jsSpOtDm 277 of 294 menu

DOM-თან მუშაობის ოპტიმიზაცია JavaScript-ში

DOM-თან მუშაობა ნელი ოპერაციაა. ამიტომ აუცილებელია ელემენტების მიღების, მონაცემების წაკითხვის და ჩაწერის მინიმუმამდე შემცირება, განსაკუთრებით ციკლში.

მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს input ველი, რომელშიც რიცხვია შეყვანილი:

<input>

მოდით, ფოკუსის დაკარგვისას შევამოწმოთ, არის თუ არა შეყვანილი რიცხვი მოცემულ დიაპაზონში:

let input = document.querySelector('input'); input.addEventListener('blur', function() { if (+input.value > 0 && +input.value <= 10) { console.log('+++'); } else { console.log('---'); } });

პრობლემა ისაა, რომ ჩვენ ორჯერ ვკითხულობთ ტექსტს input-დან, მიუხედავად იმისა, რომ მასში რიცხვი არ იცვლება. ეს, რა თქმა უნდა, არაა ოპტიმალური. მოდით, ოპტიმიზაცია მოვახდინოთ:

let input = document.querySelector('input'); input.addEventListener('blur', function() { let num = +input.value; if (num > 0 && num <= 10) { console.log('+++'); } else { console.log('---'); } });

შემდეგი კოდი ამოწმებს შეყვანილ მნიშვნელობას. შეასრულეთ ოპტიმიზაცია:

<input> let input = document.querySelector('input'); input.addEventListener('blur', function() { if (input.value === '1' || input.value === '2') { console.log('+++'); } else { console.log('---'); } });

შემდეგი კოდი პოულობს მთელი რიცხვების ჯამს ერთიდან input-ში შეყვანილ რიცხვამდე. შეასრულეთ ოპტიმიზაცია:

<input> let input = document.querySelector('input'); input.addEventListener('blur', function() { let sum = 0; for (let i = 1; i <= +input.value; i++) { sum += i; } console.log(sum); });

შემდეგი კოდი პოულობს input-ში შეყვანილი რიცხვის გამყოფთა ჯამს. შეასრულეთ ოპტიმიზაცია:

<input> <div></div> let input = document.querySelector('input'); input.addEventListener('blur', function() { let sum = 0; for (let i = 1; i <= +input.value; i++) { if (input.value % i === 0) { sum += i; let div = document.querySelector('div'); div.textContent = sum; } } });

შემდეგი კოდი აწერთ პარაგრაფებში მოცემულ რიცხვებს კვადრატში. შეასრულეთ ოპტიმიზაცია:

<p>1</p> <p>2</p> <p>3</p> <p>4</p> let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.textContent = elem.textContent * elem.textContent; }

შემდეგი კოდი ამოწმებს, input-ში შეყვანილია თუ არა სიმებიანი მნიშვნელობა მოცემულ დიაპაზონში. შეასრულეთ ოპტიმიზაცია:

<input data-min="5" data-max="10"> let inp = document.querySelector('input'); inp.addEventListener('blur', function() { if (inp.dataset.min > inp.value.length || inp.dataset.max < inp.value.length) { console.log('+++'); } else { console.log('---'); } });
ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა