⊗jsSpOtRO 270 of 294 menu

Optimering av upprepade operationer i JavaScript

Ofta gör nybörjarprogrammerare blint anrop till samma funktion flera gånger, vilket slösar på resurser.

Låt oss titta på ett exempel. Låt oss säga att vi har en sträng som innehåller en viss sökväg:

let path = 'img.png';

Låt oss säga att vår uppgift är att kontrollera om sökvägen slutar på filtillägget .png eller .jpg. En del nybörjarprogrammerare skrev följande lösning:

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

Vad är fel med denna lösning? Problemet är att metoden slice anropas två gånger, och gör samma sak. Detta är naturligtvis inte optimalt.

För att optimera behöver du klippa av strängen en gång, spara resultatet i en variabel, och sedan använda den variabeln vidare:

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

Optimera koden nedan:

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

Optimera koden nedan:

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

Optimera koden nedan:

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)
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa