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:
let 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:
let 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:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimeer die onderstaande kode:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimeer die onderstaande kode:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Optimeer die onderstaande kode:
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)