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:

javascriptlet 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ış:

javascriptlet 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:

javascriptlet path = 'img.png';
let ext  = path.slice(-4);

if (ext === '.png' || ext === '.jpg') {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Aşağıdaki kodu optimize edin:

javascriptlet num = 123;

if (String(num)[0] === '1' || String(num)[0] === '2') {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

Aşağıdaki kodu optimize edin:

javascriptlet date = new Date();

if (date.getDay() === 0 || date.getDay() === 6) {
  console.log('weekend');
} else {
  console.log('weekday');
}
Задание 3

Aşağıdaki kodu optimize edin:

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)