Optimierung wiederholter Operationen in JavaScript
Oft führen Anfänger unbedacht denselben Funktionsaufruf mehrmals aus und verschwenden Ressourcen.
Schauen wir uns ein Beispiel an. Angenommen, wir haben einen String, der einen bestimmten Pfad enthält:
let path = 'img.png';
Angenommen, unsere Aufgabe ist es, zu prüfen,
ob der Pfad auf die Erweiterung
.png oder .jpg endet. Ein
Anfänger könnte die folgende
Lösung geschrieben haben:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Was ist falsch an dieser Lösung? Das Problem ist,
dass die Methode slice zweimal aufgerufen wird
und dasselbe tut. Das ist natürlich
nicht optimal.
Zur Optimierung muss der Ausschnitt des Strings nur einmal ausgeführt, das Ergebnis in einer Variable gespeichert und diese Variable dann weiterverwendet werden:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimieren Sie den untenstehenden Code:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimieren Sie den untenstehenden Code:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('Wochenende');
} else {
console.log('Werktag');
}
Optimieren Sie den untenstehenden Code:
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'Jahr ' + date.getFullYear() + ' passt';
} else {
res = 'Jahr ' + date.getFullYear() + ' passt nicht';
}
console.log(res)