⊗jsSpOtRO 270 of 294 menu

Optymalizacja powtarzających się operacji w JavaScript

Często początkujący programiści bezmyślnie wywołują tę samą funkcję wielokrotnie, marnując zasoby.

Spójrzmy na przykład. Niech będzie dany ciąg znaków zawierający pewną ścieżkę:

let path = 'img.png';

Załóżmy, że naszym zadaniem jest sprawdzenie, czy ścieżka kończy się rozszerzeniem .png lub .jpg. Pewien początkujący programista napisał następujące rozwiązanie:

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

Co jest nie tak z tym rozwiązaniem? Problem polega na tym, że metoda slice jest wywoływana dwa razy, robiąc to samo. Jest to oczywiście nieoptymalne.

Aby zoptymalizować, należy wykonać wycięcie ciągu znaków raz, zapisać wynik w zmiennej, a następnie użyć tej zmiennej dalej:

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

Zoptymalizuj poniższy kod:

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

Zoptymalizuj poniższy kod:

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

Zoptymalizuj poniższy kod:

let date = new Date(); let res; if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) { res = 'rok ' + date.getFullYear() + ' pasuje'; } else { res = 'rok ' + date.getFullYear() + ' nie pasuje'; } console.log(res)
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć