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:
let path = 'img.png';
Faraz qilaylik, bizning vazifamiz yo'lning
.png yoki .jpg kengaytmasiga tugashini
tekshirishdir. Ba'zi yangi boshlanuvchi dasturchilar
quyidagi yechimni yozishadi:
let 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:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Quyida keltirilgan kodni optimallashtiring:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Quyida keltirilgan kodni optimallashtiring:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('dam olish kuni');
} else {
console.log('ish kuni');
}
Quyida keltirilgan kodni optimallashtiring:
let 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)