JavaScriptте кайталануучу операцияларды оптималдаштыруу
Көбүнчө башталгыч программачылар акылсыздык менен бир эле функцияны бир нече жолу чакырышып, ресурстарды керексиз кете коюшат.
Келгиле, мисал менен көрөлү. Бизде белгилүү бир жолду камтыган сап бар дейли:
let path = 'img.png';
Алдыда турган маселе - бул жолдун аягы
.png же .jpg кеңейтүүсү менен
бүтүп жаткандыгын текшерүү. Кээ бир
башталгыч программачы төмөнкү чечимди жазат:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Бул чечимде эмне туура эмес? Көйгөй мында,
slice методу эки жолу чакырылып,
бир эле ишти аткарып жатат. Бул, албетте,
оптималдуу эмес.
Оптималдаштыруу үчүн сапты кесүүнү бир жолу аткарып, натыйжасын өзгөрмөгө жазып алып, андан кийин бул өзгөрмөнү колдонуу керек:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Төмөндө берилген кодду оптималдаштырыңыз:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Төмөндө берилген кодду оптималдаштырыңыз:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Төмөндө берилген кодду оптималдаштырыңыз:
let 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)