Optimering van Herhalende Operasies in JavaScript
Vaak begin programmeerders gedagteloos 'n dieselfde funksie verskeie kere aanroep, wat hulpbronne vermors.
Kom ons kyk na 'n voorbeeld. Gestel ons het 'n string wat 'n sekere pad bevat:
javascriptlet path = 'img.png';
Gestel ons taak is om te kontroleer
of die pad eindig met die uitbreiding
.png of .jpg. Sommige
beginnende programmeerder het die
volgende oplossing geskryf:
javascriptlet path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Wat is verkeerd met hierdie oplossing? Die probleem is dat
die metode slice twee keer aangeroep word,
wat presies dieselfde doen. Dit is natuurlik
nie optimaal nie.
Om te optimiseer moet jy die afsnyding van die string slegs een keer uitvoer, die resultaat in 'n veranderlike stoor, en dan hierdie veranderlike verder gebruik:
javascriptlet path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimeer die onderstaande kode:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimeer die onderstaande kode:
javascriptlet date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Optimeer die onderstaande kode:
javascriptlet 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)