JavaScriptda takrorlanuvchi operatsiyalarni optimallashtirish

Ko'pincha yangi boshlanuvchi dasturchilar resurslarni isrof qilgan holda, bir xil funksiyani necha marta chaqirishadi.

Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizga ma'lum bir yo'lni o'z ichiga olgan satr berilgan:

javascriptlet path = 'img.png';

Faraz qilaylik, bizning vazifamiz yo'lning .png yoki .jpg kengaytmasiga tugashini tekshirishdir. Ba'zi yangi boshlanuvchi dasturchilar quyidagi yechimni yozishadi:

javascriptlet path = 'img.png';

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

Ushbu yechimda nima noto'g'ri? Muammo shundaki, slice metodi bir xil narsani qilgan holda ikki marta chaqiriladi. Bu, albatta, optimal emas.

Optimallashtirish uchun satrni bir marta kesib oling, natijani o'zgaruvchiga yozing va keyin ushbu o'zgaruvchidan keyinroq foydalaning:

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

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

Quyida keltirilgan kodni optimallashtiring:

javascriptlet num = 123;

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

Quyida keltirilgan kodni optimallashtiring:

javascriptlet date = new Date();

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

Quyida keltirilgan kodni optimallashtiring:

javascriptlet date = new Date();
let res;

if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
  res = date.getFullYear() + ' yili mos keladi';
} else {
  res = date.getFullYear() + ' yili mos kelmaydi';
}

console.log(res)