JavaScriptда такрорланган амалларни оптимизация қилиш

Кўпинча бошланувчи дастурчилар андишасиз бир хил функцияни бир неча марта чақириб, ресурсларни исроф қиладилар.

Келинг, мисолда кўрамиз. Бизда маълум йўлни ифодаловчи сатр берилган бўлсин:

javascriptlet path = 'img.png';

Фарз қилайлик, бизга йўлнинг .png ёки .jpg кенгайтмаси билан тугашини текшириш вазифаси юклатилган. Бир бошланувчи дастурчи куйидаги ечимни язган:

javascriptlet path = 'img.png';

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

Бу ечимда нима но tugri? Муаммо шундаки, slice усули бир хил ишни бажариб, икки марта чақирилмоқда. Бу, албатта, оптимал эмас.

Оптимизация қилиш учун сатрни кесиб олишни бир марта бажариб, натижани ўзгарувчига ёзиб олиш, сўнг эса бу ўзгарувчини кейинги ишларда ишлатиш керак:

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

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

Куйида берилган кодни оптимизация қилинг:

javascriptlet num = 123;

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

Куйида берилган кодни оптимизация қилинг:

javascriptlet date = new Date();

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

Куйида берилган кодни оптимизация қилинг:

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)