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('---');
}
Quyida keltirilgan kodni optimallashtiring:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
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');
}
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)