⊗jsSpOtRO 270 of 294 menu

Оптимизација на повторувачки операции во 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)
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј