⊗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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне