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('демалыс');
} else {
console.log('жұмыс');
}
Төмендегі кодты оңтайландырыңыз:
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'жыл ' + date.getFullYear() + ' сәйкес келеді';
} else {
res = 'жыл ' + date.getFullYear() + ' сәйкес келмейді';
}
console.log(res)