⊗jsSpOtRO 270 of 294 menu

Optimalizácia opakujúcich sa operácií v JavaScripte

Začiatoční programátori často bezmyšlienkovite volajú tú istú funkciu niekoľkokrát, čím míňajú zdroje.

Pozrime sa na príklad. Nech je daný reťazec, ktorý obsahuje nejakú cestu:

let path = 'img.png';

Predpokladajme, že máme za úlohu skontrolovať, či cesta končí na príponu .png alebo .jpg. Nejaký začiatočník programátor napísal nasledujúce riešenie:

let path = 'img.png'; if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') { console.log('+++'); } else { console.log('---'); }

Čo je zlé na tomto riešení? Problém je, že metóda slice je volaná dvakrát, pričom robí to isté. To, samozrejme, nie je optimálne.

Pre optimalizáciu je potrebné vykonať odrezanie reťazca raz, uložiť výsledok do premennej a potom použiť túto premennú ďalej:

let path = 'img.png'; let ext = path.slice(-4); if (ext === '.png' || ext === '.jpg') { console.log('+++'); } else { console.log('---'); }

Optimalizujte nižšie uvedený kód:

let num = 123; if (String(num)[0] === '1' || String(num)[0] === '2') { console.log('+++'); } else { console.log('---'); }

Optimalizujte nižšie uvedený kód:

let date = new Date(); if (date.getDay() === 0 || date.getDay() === 6) { console.log('weekend'); } else { console.log('weekday'); }

Optimalizujte nižšie uvedený kód:

let date = new Date(); let res; if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) { res = 'year ' + date.getFullYear() + ' fits'; } else { res = 'year ' + date.getFullYear() + ' doesn't fit'; } console.log(res)
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť