Optimering af gentagne operationer i JavaScript
Ofte begynder programmører tankeløst at kalde den samme funktion flere gange, hvilket spilder ressourcer.
Lad os se på et eksempel. Antag at vi har en streng, der indeholder en stifind:
let path = 'img.png';
Antag at vores opgave er at kontrollere,
om stien slutter med filtypen
.png eller .jpg. En
begynderprogrammør kunne have skrevet
følgende løsning:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Hvad er der galt med denne løsning? Problemet er,
at metoden slice kaldes to gange,
og gør det samme. Dette er selvfølgelig
ikke optimalt.
For at optimere skal udskæringen af strengen udføres én gang, resultatet skal gemmes i en variabel, og derefter skal denne variabel bruges videre:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimér nedenstående kode:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimér nedenstående kode:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Optimér nedenstående 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)