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:
javascriptlet 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:
javascriptlet 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:
javascriptlet path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Задание 1
Optimér nedenstående kode:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Задание 2
Optimér nedenstående kode:
javascriptlet date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Задание 3
Optimér nedenstående 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)