JavaScript'te Tekrarlanan İşlemlerin Optimizasyonu
Çoğu zaman yeni başlayan programcılar, kaynakları tüketerek aynı fonksiyonu defalarca düşünmeden çağırırlar.
Bir örneğe bakalım. Bize bir yol içeren bir string verilsin:
let path = 'img.png';
Diyelim ki görevimiz, yolun .png veya .jpg
uzantısıyla bitip bitmediğini kontrol etmek.
Bazı yeni başlayan programcılar
aşağıdaki çözümü yazmış:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Bu çözümde ne yanlış? Sorun şu ki,
slice metodu iki kez çağrılıyor,
aynı şeyi yapıyor. Bu, elbette
optimal değil.
Optimizasyon için stringi kesme işlemini bir kez yapmalı, sonucu bir değişkene yazmalı ve ardından bu değişkeni kullanmalısınız:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Aşağıdaki kodu optimize edin:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Aşağıdaki kodu optimize edin:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Aşağıdaki kodu optimize edin:
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)