⊗jsSpOtRO 270 of 294 menu

Optimizarea operațiilor repetate în JavaScript

Deseori, programatorii începători efectuează fără gândire apelarea aceleiași funcții de mai multe ori, consumând resurse.

Să ne uităm la un exemplu. Să presupunem că avem un șir care conține o anumită cale:

let path = 'img.png';

Să presupunem că sarcina noastră este să verificăm dacă calea se termină cu extensia .png sau .jpg. Un programator începător ar putea scrie următoarea soluție:

let path = 'img.png'; if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') { console.log('+++'); } else { console.log('---'); }

Ce nu este în regulă cu această soluție? Problema este că metoda slice este apelată de două ori, făcând același lucru. Acest lucru, desigur, nu este optim.

Pentru optimizare, este necesar să tăiați șirul o singură dată, să înregistrați rezultatul într-o variabilă și apoi să utilizați această variabilă mai departe:

let path = 'img.png'; let ext = path.slice(-4); if (ext === '.png' || ext === '.jpg') { console.log('+++'); } else { console.log('---'); }

Optimizați codul de mai jos:

let num = 123; if (String(num)[0] === '1' || String(num)[0] === '2') { console.log('+++'); } else { console.log('---'); }

Optimizați codul de mai jos:

let date = new Date(); if (date.getDay() === 0 || date.getDay() === 6) { console.log('weekend'); } else { console.log('weekday'); }

Optimizați codul de mai jos:

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)
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge