Optimizimi i Operacioneve të Përsëritura në JavaScript

Shpesh programuesit fillestarë pa u menduar bëjnë thirrje të së njëjtës funksion disa herë, duke shfrytëzuar burime.

Le të shohim një shembull. Le të them se kemi një varg që përmban një rrugë të caktuar:

javascriptlet path = 'img.png';

Le të them se synimi ynë është të kontrollojmë nëse rruga përfundon me zgjerimin .png ose .jpg. Disa programues fillestarë kanë shkruar zgjidhjen e mëposhtme:

javascriptlet path = 'img.png';

if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
  console.log('+++');
} else {
  console.log('---');
}

Çfarë nuk shkon me këtë zgjidhje? Problemi është se metoda slice thirret dy herë, duke bërë të njëjtën gjë. Kjo, sigurisht, nuk është optimale.

Për optimizim duhet të kryhet prerja e vargut një herë, të regjistrohet rezultati në një ndryshore, dhe më pas të përdoret ajo ndryshore më tej:

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

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

Optimizoni kodin e dhënë më poshtë:

javascriptlet num = 123;

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

Optimizoni kodin e dhënë më poshtë:

javascriptlet date = new Date();

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

Optimizoni kodin e dhënë më poshtë:

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)