⊗jsSpOtRO 270 of 294 menu

Optimalizace opakovaných operací v JavaScriptu

Často začínající programátoři bezmyšlenkovitě volají stejnou funkci několikrát, čímž plýtvají prostředky.

Podívejme se na příklad. Předpokládejme, že máme daný řetězec obsahující nějakou cestu:

let path = 'img.png';

Předpokládejme, že naším úkolem je zkontrolovat, zda cesta končí příponou .png nebo .jpg. Nějaký začínající programátor napsal následující řešení:

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

Co je na tomto řešení špatně? Problém je, že metoda slice je volána dvakrát, a dělá totéž. To samozřejmě není optimální.

Pro optimalizaci je třeba provést odstranění části řetězce pouze jednou, výsledek uložit do proměnné a poté tuto proměnnou použít dále:

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

Optimalizujte níže uvedený kód:

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

Optimalizujte níže uvedený kód:

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

Optimalizujte níže 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)
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout